asp如何加密数据-冯金伟博客园

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")))

%>