基于C#的文档加密器的实现

时间:2022-10-23 11:27:34

基于C#的文档加密器的实现

摘 要

随着计算机和通信技术的迅猛发展,大量敏感信息通过公共通信设施或计算机网络进行交换,特别是internet的广泛应用、电子商务和电子政务的迅速发展,越来越多的个人信息需要严格保密,如银行账号、个人隐私等。正是这种对信息的机密性与真实性的需求,很有必要设计一个加密软件对其敏感信息加密。一个好的加密工具能够让用户方便快捷对重要信息进行有效保护,从而大大降低了公司的重要信息泄露的安全隐患,真正做到机密信息只供有权限的用户查阅。

本系统采用 (c#)作为开发工具,系统主要功能包含:加密文件的密码设置、加密文件、解密密码的验证、解密文件等。加密功能需要扩展的方面有:对网络数据流加密和解密;对节点加密和节点解密;对数据打包封装,实现网络上使用密文传输;局部文本加密替换。此外,密钥的分配必须通过安全的渠道进行传输,因为密钥的管理是关系到整个加密方案的重要安全因素。

关键词:des加密器; (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次迭代加密所使用的解密密钥是由用户自定的对应。

上一篇:无线数据采集器设计 下一篇:通信工程毕业设计论文(一)