在asp中使用MD5加密算法对数据进行加密,具体方法如下:
<%
Function hmac(data,key)
dim ipad,opad,k_ipad,k_opad,i
for i = 1 to ( 64 - len(key) )
key = key & chr(&H00)
next
'Response.Write(len(key))
ipad = "6666666666666666666666666666666666666666666666666666666666666666"
opad = "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"
k_ipad = strXor(ipad,key ) 'key Xor ipad
k_opad = strXor(opad,key ) 'key Xor opad
hmac =md5( k_opad & pack( md5( k_ipad & data ) ) )
End Function
Function strXor(strdata,strkey)
Dim strChar, iKeyChar, iStringChar, i,iCryptChar
for i = 1 to Len(strdata)
iKeyChar = Asc(mid(strkey,i,1))
iStringChar = Asc(mid(strdata,i,1))
iCryptChar = iKeyChar Xor iStringChar
strXor = strXor & Chr(iCryptChar)
next
End Function
Function ShowHex(data)
dim i
dim ch
l=lenB(data)
for i = 1 to l
ch=midB(data,i,1)
h=trim(hex(ascB(ch)))
if len(h)=1 then
h="0"+h
end if
ShowHex = ShowHex + h+" "
next
end Function
Function strtoHex(achar)
if Asc(achar) < 58 then
strtoHex = Asc(achar) - 48
else
strtoHex = Asc(achar) - 87
end if
End Function
Function pack(amd5)
dim i,n
dim abyte,hsum,lsum
n = len(amd5)/2
for i = 0 to n - 1
hsum = strtoHex(mid(amd5,2*i + 1,1)) * 16 + strtoHex(mid(amd5,2*i + 2,1))
if hsum > 127 and i < n - 1 then
i = i + 1
'Response.write(mid(amd5,2*i + 1,1) & mid(amd5,2*i + 2,1) )
lsum = strtoHex(mid(amd5,2*i + 1,1)) * 16 + strtoHex(mid(amd5,2*i + 2,1))
pack = pack & chr(hsum * 256 + lsum )
else
'Response.write(mid(amd5,2*i + 1,1) & mid(amd5,2*i + 2,1) )
pack = pack & chrw(hsum)
end if
next
End Function
Response.Write(md5(hmac("testdata","029a1228ea025cf897fe305715f3b794")))
%>