CnPack Forum » CnVCL 组件包 » CnDES加密解密好像有问题


2010-7-22 10:44 nxfbccu
CnDES加密解密好像有问题

经多次测试,用DESEncryptStr与DESDecryptStr加密解密时,当源字符串不值有时候是对的有时候会解密出来不对,很容易出现在这种问题
比如:KEY:1;源字符串:ffregtrewwe3rwer;解决出来为:ffregtre
都是AnsiString类型

2010-7-22 10:46 nxfbccu
用HEX这套就没发现有什么问题

2010-7-22 20:24 Passion
请问您的D是什么版本?“当源字符串不值”是啥意思?

2010-7-22 20:32 Passion
DESEncryptStr加密生成的字符串可能含有不可打印字符,如果将其赋值给Edit的Text或其他界面显示相关的属性,则可能被截断,从而出现解密后丢失内容的问题。
推荐用AnsiString保存返回值,或者改用DESEncryptStrToHex与DESDecryptStrFromHex两个函数,它们的返回值是十六进制可读字符串。

2010-7-22 22:05 nxfbccu
对,就是这种现象,感觉就是被截断了
我测试是用的就是控件的EDIT的TEXT
我不用控件用变量试试

2010-7-22 22:16 nxfbccu
变量是可以,这样有点不方便的地方是,不能存储成功文件,比如将某个配置文件加密,如果加密后有不可打印的字符被截断再存储成加密后的文件,再解密出来就不对了
当然用HEX是没问题,只是内容比较长

2010-8-2 13:22 Passion
DES加密是会产生不可显示字符,躲不过被截断的现象。不用HEX的话也可以再来一次Base64,不过也会增加长度,只是比HEX能短些。

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.