作者sliceart (art)
看板PHP
标题Re: [请益] Pack('H*') in classic asp
时间Sat Mar 28 00:53:20 2015
※ 引述《sliceart (art)》之铭言:
: 想请问若要在ASP中实作PACK()的话该怎麽做呢?
: 主要是为了将pack('H*',md5($str))实作在ASP中
: 在ASP内我先把md5的32个位元两两一组
: 再把这16组字串转成数字,如33转成51
: 然後再用chr()转成ASCII,最後将这16个字元加起来
: 我这样测试了几笔资料,看起来是好像显示出来的,PHP跟ASP都一样
: 但是将解析出来的字串再透过MD5比对,PHP跟ASP的就天差地远了
: 请问有没有高手可解惑.....
: 谢谢
: function PHP_PACK(str)
: dim i , rtn , tmpA,tmpB
: rtn = ""
: For i = 1 to len(str) step 2
: tmpA = mid(str,i,1)
: tmpB = mid(str,i+1,1)
: num = HexToTen(tmpA)*16+HexToTen(tmpB)
: 'response.write num&":"&chr(num)&"<br/>"
: rtn = rtn & chr(num)
: next
: 'response.write rtn & ":"&md5(rtn)&"<br/>"
: PHP_PACK=rtn
: end function
: function HexToTen(str)
: select case lcase(str)
: case "1":rtn = 1
: case "2":rtn = 2
: case "3":rtn = 3
: case "4":rtn = 4
: case "5":rtn = 5
: case "6":rtn = 6
: case "7":rtn = 7
: case "8":rtn = 8
: case "9":rtn = 9
: case "a":rtn = 10
: case "b":rtn = 11
: case "c":rtn = 12
: case "d":rtn = 13
: case "e":rtn = 14
: case "f":rtn = 15
: end select
: HexToTen = rtn
: end function
灵感来了
原因是ASP CHR()在128~255的资料问题
解决方案是采用codepage 1250
--
Sent from my Windows
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.70.212.242
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1427475202.A.8EB.html
1F:→ MOONRAKER: 太厉害了,我还在想是不是靠左靠右的问题。 03/28 01:12