XXTEA解密只显示一半[已解决]
本帖最后由 无名蜘蛛 于 2010-9-23 10:00 编辑非常奇怪,不管加密多少,反正就是显示一半,显示的那一半也是正确的,也不出错,也不乱码。$haha = _XXTEA_Decrypt("0x3D2F80F883C2DC18","123")
MsgBox(0,"",BinaryToString($haha)) 貌似是正常的,你再试试呢!
#Include <ACN_HASH.au3>
$sPass = _XXTEA_Encrypt('ABCDEFGHIJKLMNOPQRSTUVWXYZ', '123')
MsgBox(0, '', $sPass)
MsgBox(0, '', BinaryToString(_XXTEA_Decrypt($sPass, '123'))) 回复 2# 水木子
抱歉,是我没说清楚,是中文显示一半,英文正常!! 本帖最后由 水木子 于 2010-9-23 09:52 编辑
哦!我刚刚测试了,的确有这问题。
出现这种情况,有可能是函数对U码转换的问题,貌似N多UDF函数都普遍存这个问题。
下面是一投机取巧的方法你试试!
#Include <ACN_HASH.au3>
$sPass = _XXTEA_Encrypt('中文测试 ', '123')
MsgBox(0, '编码:', $sPass)
MsgBox(0, '解码:', BinaryToString(_XXTEA_Decrypt($sPass, '123'))) 回复 2# 水木子
我是这样测试的#include<ACN_HASH.AU3>
$haha = _XXTEA_Encrypt("哈哈哈哈","123")
MsgBox(0,"",$haha)
$huhu = _XXTEA_Decrypt($haha,"123")
MsgBox(0,"",BinaryToString($huhu))4个哈哈变成两个哈哈了 回复 5# 无名蜘蛛
希望4楼的方法能给你点帮助吧! 回复 6# 水木子
多敲几个空格,呵呵,太有创意了 嘿嘿!可以数一数字符串中有多少U码,就在后面添加多少个空字符,这样转换回来就正常了。 回复 4# 水木子
查到个资料,JAVA的。如果需要在 JavaScript 中加密解密带有汉字的信息, 在加密时,需要先将带加密信息用 utf16to8 进行转换,解密时,需要将解密后的内容再用 utf8to16 还原。解决办法,比较烦琐。
#Include <ACN_HASH.au3>
#include <Array.au3>
; 字符串转换为 ASCII 码数组.
Local $a = StringToASCIIArray("中文测试",0,Default,2);UTF8读入字符串
; ASCII 码数组转换为字符串.
Local $s = StringFromASCIIArray($a,0,Default,1);转换成ANSI
;转换结果将会返回 ASCII 码表示的字符串.
$sPass = _XXTEA_Encrypt($s, '123');加密
MsgBox(0, '编码:', $sPass);密文
$decrypt=StringToASCIIArray(_XXTEA_Decrypt($sPass, '123'),0,Default,1);ANSI读入
$abc=StringFromASCIIArray($a,0,Default,2);转换成UTF8
MsgBox(0,"结果",$abc);结果
如果仅仅是为了对字符串进行加解密的话,可以看看下面这个函数。
我一直是用的这个,感觉还不错。
http://www.autoitx.com/forum.php?mod=redirect&goto=findpost&ptid=14189&pid=152879&fromuid=7644217 回复水木子
查到个资料,JAVA的。解决办法,比较烦琐。
3mile 发表于 2010-9-23 10:28 http://www.autoitx.com/images/common/back.gif
这个是错误的 等于没加密 如果仅仅是为了对字符串进行加解密的话,可以看看下面这个函数。
我一直是用的这个,感觉还不错。
水木子 发表于 2010-9-23 10:34 http://www.autoitx.com/images/common/back.gif
我也是用这个哈。。 回复水木子
查到个资料,JAVA的。解决办法,比较烦琐。
3mile 发表于 2010-9-23 10:28 http://www.autoitx.com/images/common/back.gif
两个错误
1.测试 确实是需要 u16-u8 转换而 u8-ansi 是不行的 奇数汉字会出错
2. $abc=StringFromASCIIArray($a,0,Default,2);转换成UTF8 两个错误
1.测试 确实是需要 u16-u8 转换而 u8-ansi 是不行的 奇数汉字会出错
2. $abc=StringF ...
pighead456 发表于 2011-10-30 10:10 http://www.autoitx.com/images/common/back.gif
另外应该采用更简单的方式 直接转换
页:
[1]