aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 12816|回复: 3

为什么同样的密钥解密后不一样

[复制链接]

40

主题

519

回帖

3015

积分

新手入门

超级初学者

积分
3015
发表于 2011-12-24 22:31:30 | 显示全部楼层 |阅读模式
import console;//打开控制台
import fsys.ini
import string.xxtea

ini = fsys.ini(
"D:\config.ini")
ini.write(
"account","name",string.xxtea.encrypt("lin","taobao"))
str = ini.read(
"account","name")
str = string.xxtea.decrypt(str,
"taobao")

tt = string.xxtea.encrypt(
"lin","taobao")
tt = string.xxtea.decrypt(tt,
"taobao")
   
console.log(str,tt)   
//同样的加解密过程,同样的密钥,为什么输出值不一样呢?
execute("pause")
;
//关闭控制台

上面的代码,以“taobao”做密钥,写入ini,解密得不到正确结果。
是什么缘故呢?

42

主题

627

回帖

3755

积分

版主

积分
3755
发表于 2011-12-24 23:01:12 | 显示全部楼层
因为你加密以后的字符串有空格,
而在ini文件中,会忽略掉空格,读回来再解密自然不对.

这种小问题,你把两次加密解密的结果写到变量里比较一下长度,
可以很容易可以找出问题。

42

主题

627

回帖

3755

积分

版主

积分
3755
发表于 2011-12-24 23:01:58 | 显示全部楼层
可以直接用 table.tostring() 将table转换为文本存储, 或者使用 fsyt.table 都很方便,没有上面的问题.

40

主题

519

回帖

3015

积分

新手入门

超级初学者

积分
3015
 楼主| 发表于 2011-12-24 23:40:49 | 显示全部楼层
编程 发表于 2011-12-24 23:01
因为你加密以后的字符串有空格,
而在ini文件中,会忽略掉空格,读回来再解密自然不对.

TKS,不明白加解密和ini的原理,没想到这个问题
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-12-16 02:12 , Processed in 0.057486 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表