本帖最后由 gto250 于 2010-6-17 20:50 编辑
今天在试着制作au3版的飞信,在进行到飞信登录的时候遇到了问题,主要是md5加密的问题。
网络上是这么说的:1.求"sid:domain:passwd"这个utf8字符串的MD5值,得出key
2.求"key:nonce:cnonce"这个utf8字符串的MD5字符串,得出H1
我将sid:domain:passwd ,key:nonce:cnonce这些都提出来,看下面的au3代码#include "ACN_HASH.au3"
Dim $C_NONCE="AAB3238922BCC25A6F606EB525FFDC56"
Dim $fetion_no="572554551"
Dim $domain_fetion="fetion.com.cn"
Dim $fetion_pwd="123456"
Dim $NONCE="2811FF792CFE8F6E5CF947D25BE129CC"
;$key=???dP:??V1???y?? 经过md5加密后的二进制值
;$h1=AE30B9BDD4F770B144315319D7EC129D php计算的到的
;通过我下面的代码,$key值能取得和php的md5($fetion_no&':'&$domain_fetion&':'&$fetion_pwd, true)相同的值,但是h1值就不管怎么样都是错误的
MsgBox(0,"",FetionEncryptPassWD())
Func FetionEncryptPassWD()
$key = Binary(_MD5($fetion_no&':'&$domain_fetion&':'&$fetion_pwd))
; $file=FileOpen("44.txt",18)
;$key=FileRead($file)
;MsgBox(0,"",$key)
$h1 = StringUpper(MD5($key&':'&$NONCE&':'&$C_NONCE));
MsgBox(0,"",$h1)
Return $h1 ;
EndFunc
Func MD5($str_en)
Return StringTrimLeft(_MD5($str_en),2)
EndFunc
下面的PHP代码:php代码
<?
$c=md5("572554551:fetion.com.cn:123456",true);
echo md5($c.':2811FF792CFE8F6E5CF947D25BE129CC:AAB3238922BCC25A6F606EB525FFDC56');
?>
现在出现的问题是,KEY值能求出来,我在au3中用msgbox查看key值和在PHP中用echo查看key值是相同的
但是,在第二部求h1值的时候,就出现问题了,不管怎么做,au3求出的h1值总是与php求出的不一样。
php中求出的是正确的,但是在au3中求出的是错误的!
请兄弟们帮助 |