您的位置:首页 > 编程语言 > ASP

ASP 简单的异或加密方法

2010-05-08 20:27 411 查看
<%

最简单的加密方法:XOR

----------------------

g_CryptThis = "中国-China"

strFullKeyLen = Len(g_CryptThis)

strFullKey = KeyGen(strFullKeyLen)

Response.Write "<p>原始字符串: " & g_CryptThis & "<p>"

Response.Write "<p>密钥: " & strFullKey & "<p>"

Response.Write "<p>加密后: " & Server.URLEncode(EnCrypt(g_CryptThis)) & "<p>"

Response.Write "<p>解密后: " & DeCrypt(EnCrypt(g_CryptThis)) & "<p>"

异或加密

Function EnCrypt(strCryptThis)

Dim strChar, iKeyChar, iStringChar, i

for i = 1 to Len(strCryptThis)

iKeyChar = Asc(mid(strFullKey,i,1))

iStringChar = Asc(mid(strCryptThis,i,1))

iCryptChar = iKeyChar Xor iStringChar

strEncrypted = strEncrypted & Chr(iCryptChar)

next

EnCrypt = strEncrypted

End Function

异或解密

Function DeCrypt(strEncrypted)

Dim strChar, iKeyChar, iStringChar, i

for i = 1 to Len(strEncrypted)

iKeyChar = (Asc(mid(strFullKey,i,1)))

iStringChar = Asc(mid(strEncrypted,i,1))

iDeCryptChar = iKeyChar Xor iStringChar

strDecrypted = strDecrypted & Chr(iDeCryptChar)

next

DeCrypt = strDecrypted

End Function

产生指定长度的随机密钥

Function KeyGen(strlength)

Dim i,UB

Dim Temp

Dim Poss

Poss = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

Temp = ""

UB = Len(Poss)

For i = 1 To strlength

Randomize

Temp = Temp & Mid(Poss,Int((UB - 0 + 1) * Rnd + 1),1)

Next

KeyGen = Temp

End Function

%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: