摘 要
随着计算机和通信技术的迅猛发展,大量敏感信息通过公共通信设施或计算机网络进行交换,特别是Internet的广泛应用、电子商务和电子政务的迅速发展,越来越多的个人信息需要严格保密,如银行账号、个人隐私等。正是这种对信息的机密性与真实性的需求,很有必要设计一个加密软件对其敏感信息加密。一个好的加密工具能够让用户方便快捷对重要信息进行有效保护,从而大大降低了公司的重要信息泄露的安全隐患,真正做到机密信息只供有权限的用户查阅。
本系统采用ASP.NET (C#)作为开发工具,系统主要功能包含:加密文件的密码设置、加密文件、解密密码的验证、解密文件等。加密功能需要扩展的方面有:对网络数据流加密和解密;对节点加密和节点解密;对数据打包封装,实现网络上使用密文传输;局部文本加密替换。此外,密钥的分配必须通过安全的渠道进行传输,因为密钥的管理是关系到整个加密方案的重要安全因素。
关键词:DES加密器;ASP.NET (C#);文件加密;文件解密
算法的编程实现
(一)int des(char *data, char *key,int readlen)
参数:
1.存放待加密明文的内存指针(长度为readlen,可能经过填充;
2.存放用户输入的密钥内存的指针
3.待加密明文的长度(8字节的倍数)
功能:
生成加密密钥,把待加密的明文数据分割成64位的块,逐块完成16次迭代加密,密文存放data所指向的内存中。
(二)int Ddes(char *data, char *key,int readlen)
参数:
1.存放待解密文的内存指针(长度为readlen,可能经过填充;
2.存放用户输入的密钥内存的指针
3.待解密文的长度( 8字节的倍数)
功能:
生成解密密钥,把待解密文分割成64位的块,逐块完成16次迭代解密,解密后的明文存放在data所指向的内存中。
(三)int des3(char *data, char *key, int n ,int readlen)
参数:
1.存放待加密明文的内存指针(长度为readlen,可能经过填充;
2.存放用户输入的密钥内存的指针
3.用户指定进行多少层加密
4.待加密明文的长度(8字节的倍数)
功能:
生成加密密钥,把待加密的明文分割成64位的块,把第i-1层加密后的密文作为第i层的明文输入,根据用户指定的加密层数进行n层加密,最终生成的密文存放在data所指向内存中。
说明:
用户仅仅输入一条密钥,所有的加密密钥都是由这条密钥生成.
(四)int Ddes3(char *data, char*key, int n ,int readlen)
参数:
1.存放待解密文的内存指针(长度为readlen,可能经过填充;
2.存放用户输入的密钥内存的指针
3.用户指定进行多少层解密
4.待解密文的长度(8字节的倍数)
功能:
生成解密密钥,把待解密文分割成64位的块,把第i-1层解密后的"明文"作为第i层解密密文输入,根据用户指定的解密层数进行n层解密,最终生成的明文存放在data所指向内存中。
说明:
用户仅仅输入一条密钥,所有的解密密钥都是由这条密钥生成.
(五) int desN(char*data,char*key,int n_key,int readlen)
参数:
1.存放待加密明文的内存指针(长度为readlen,可能经过填充;
2.存放用户输入的密钥内存的指针
3.用户指定了多少条密钥
4.待加密明文的长度(8字节的倍数)
功能:
生成加密密钥,把待加密的明文分割成64位的块,把第i-1层加密后的密文作为第i层加密的明文输入,根据用户指定的加密层数进行n层加密,最终生成的密文存放在data所指向的内存中。
说明:
这里用户通过输入的密钥条数决定加密的层数,每轮16次迭代加密所使用的加密密钥是由用户自定的对应密钥生成。
(六) int DdesN(char *data,char *key,int n_key,int readlen)
参数:
1.存放待解密文的内存指针(长度为readlen,可能经过填充;
2.存放用户输入的密钥内存的指针
3.用户指定了多少条密钥
4.待解密文的长度(8字节的倍数)
功能:
生成解密密钥,把待解密文分割成64位的块,把第i-1层解密后的”明文”作为第i层解的密文输入,根据用户指定的解密层数进行n层解密,最终生成的明文存放在data所指向的内存中。
说明:
这里用户通过输入的密钥条数决定解密的层数,每轮16次迭代加密所使用的解密密钥是由用户自定的对应。
点此咨询学术顾问 快人一步得到答案