当前位置:主页   - 电脑 - 网站开发 - ASP.Net
DES加密解密工具2.1及其代码——支持字符串及文件加密,支持3重DES
来源:网络   作者:   更新时间:2012-03-09
收藏此页】    【字号    】    【打印】    【关闭

  本文示例源代码或素材下载

  一.DES 2.1 说明 

   最近非常的忙,事情都已经堆着了。所以迟迟没有更新博客,请各位需要代码的朋友谅解,再次给那些给那些最近留言的朋友说一声对不起。

  今天我把代码发上来,并再次声明,DES 1.0修正版的代码是正确的,但修正时没有更新DES1.2,所以DES1.2是错误的,希望以后大家不要再问同样的问题。DES 2.x是正确的。

  下面我们先看看DES 2.1 的截图:

DES加密解密工具2.1及其代码——支持字符串及文件加密,支持3重DES

  图片看不清楚?请点击这里查看原图(大图)。 

  二. DES 2.1的简介:

  1.支持任意长度字符串加密解密

  2.明文、密钥可以不足8字节

  3.支持回车换行,Tab等特殊字符

  4.密文可以选择三种方式显示

  5.支持3重DES

  6.支持文件加密、解密

  7.加密时显示进度

  三.DES 算法介绍

  关于DES算法的介绍大家可以看我博客里的另一篇文章,[原创]DES算法的介绍以及实现(含上次DES程序1.0的源码),所以在此不在重述。

  四. yxyDES2 Class提供的Public函数

  下面我们来看看yxyDES2 类(Class)里public函数和它们的用法:

//功能:产生16个28位的key
        //参数:源8位的字符串(key),存放key的序号0-1
        //结果:函数将调用private CreateSubKey将结果存于char SubKeys[keyN][16][48]
        void InitializeKey(char* srcBytes,unsigned int keyN);

        //功能:加密8位字符串
        //参数:8位字符串,使用Key的序号0-1
        //结果:函数将加密后结果存放于private szCiphertext[16]
        //      用户通过属性Ciphertext得到
        void EncryptData(char* _srcBytes,unsigned int keyN);

        //功能:解密16位十六进制字符串
        //参数:16位十六进制字符串,使用Key的序号0-1
        //结果:函数将解密候结果存放于private szPlaintext[8]
        //      用户通过属性Plaintext得到
        void DecryptData(char* _srcBytes,unsigned int keyN);

        //功能:加密任意长度字符串
        //参数:任意长度字符串,长度,使用Key的序号0-1
        //结果:函数将加密后结果存放于private szFCiphertextAnyLength[8192]
        //      用户通过属性CiphertextAnyLength得到
        void EncryptAnyLength(char* _srcBytes,unsigned int _bytesLength,unsigned int keyN);

        //功能:解密任意长度十六进制字符串
        //参数:任意长度字符串,长度,使用Key的序号0-1
        //结果:函数将加密后结果存放于private szFPlaintextAnyLength[8192]
        //      用户通过属性PlaintextAnyLength得到
        void DecryptAnyLength(char* _srcBytes,unsigned int _bytesLength, unsigned int keyN);

        //功能:Bytes到Bits的转 ,
        //参数:待变换字符串,处理后结果存放缓冲区指针,Bits缓冲区大小
        void Bytes2Bits(char *srcBytes, char* dstBits, unsigned int sizeBits);

        //功能:Bits到Bytes的转换,
        //参数:待变换字符串,处理后结果存放缓冲区指针,Bits缓冲区大小
        void Bits2Bytes(char *dstBytes, char* srcBits, unsigned int sizeBits);

        //功能:Int到Bits的转换,
        //参数:待变换字符串,处理后结果存放缓冲区指针
        void Int2Bits(unsigned int srcByte, char* dstBits);
 a      
        //功能:Bits到Hex的转换
        //参数:待变换字符串,处理后结果存放缓冲区指针,Bits缓冲区大小
        void Bits2Hex(char *dstHex, char* srcBits, unsigned int sizeBits);
        
        //功能:Bits到Hex的转换
        //参数:待变换字符串,处理后结果存放缓冲区指针,Bits缓冲区大小
        void Hex2Bits(char *srcHex, char* dstBits, unsigned int sizeBits);

        //szCiphertextInBinary的get函数
        char* GetCiphertextInBinary();

        //szCiphertextInHex的get函数
        char* GetCiphertextInHex();

        //Ciphertext的get函数
        char* GetCiphertextInBytes();

        //Plaintext的get函数
        char* GetPlaintext();

        //CiphertextAnyLength的get函数
        char* GetCiphertextAnyLength();

        //PlaintextAnyLength的get函数
        char* GetPlaintextAnyLength();

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明