一段在asp中加密与解密对应的函数

在ASP中加密方法有对应的解密方法好象不多,现在根据前辈资料整理出在asp中加密与解密函数

rsa.asp

 1   
 2rem 在ASP中实现加密与解密,加密方法:根据RSA   
 3rem 联系:[email protected]   
 4Class clsRSA   
 5  
 6Public PrivateKey   
 7Public PublicKey   
 8Public Modulus   
 9  
10  
11  
12Public Function Crypt(pLngMessage, pLngKey)   
13On Error Resume Next   
14Dim lLngMod   
15Dim lLngResult   
16Dim lLngIndex   
17If pLngKey Mod 2 = 0 Then   
18lLngResult = 1   
19For lLngIndex = 1 To pLngKey / 2   
20lLngMod = (pLngMessage ^ 2) Mod Modulus   
21' Mod may error on key generation   
22lLngResult = (lLngMod * lLngResult) Mod Modulus   
23If Err Then Exit Function   
24Next   
25Else   
26lLngResult = pLngMessage   
27For lLngIndex = 1 To pLngKey / 2   
28lLngMod = (pLngMessage ^ 2) Mod Modulus   
29On Error Resume Next   
30' Mod may error on key generation   
31lLngResult = (lLngMod * lLngResult) Mod Modulus   
32If Err Then Exit Function   
33Next   
34End If   
35Crypt = lLngResult   
36End Function   
37  
38  
39  
40Public Function Encode(ByVal pStrMessage)   
41Dim lLngIndex   
42Dim lLngMaxIndex   
43Dim lBytAscii   
44Dim lLngEncrypted   
45lLngMaxIndex = Len(pStrMessage)   
46If lLngMaxIndex = 0 Then Exit Function   
47For lLngIndex = 1 To lLngMaxIndex   
48lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))   
49lLngEncrypted = Crypt(lBytAscii, PublicKey)   
50Encode = Encode & NumberToHex(lLngEncrypted, 4)   
51Next   
52End Function   
53  
54Public Function Decode(ByVal pStrMessage)   
55Dim lBytAscii   
56Dim lLngIndex   
57Dim lLngMaxIndex   
58Dim lLngEncryptedData   
59Decode = ""   
60lLngMaxIndex = Len(pStrMessage)   
61For lLngIndex = 1 To lLngMaxIndex Step 4   
62lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))   
63lBytAscii = Crypt(lLngEncryptedData, PrivateKey)   
64Decode = Decode & Chr(lBytAscii)   
65Next   
66End Function   
67  
68Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)   
69NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)   
70End Function   
71  
72Private Function HexToNumber(ByRef pStrHex)   
73HexToNumber = CLng("&h" & pStrHex)   
74End Function   
75  
76End Class   

test.asp

 1   
 2function Encryptstr(Message)   
 3Dim LngKeyE   
 4Dim LngKeyD   
 5Dim LngKeyN   
 6Dim StrMessage   
 7Dim ObjRSA   
 8  
 9  
10LngKeyE = "32823"   
11LngKeyD = "20643"   
12LngKeyN = "29893"   
13StrMessage = Message   
14  
15Set ObjRSA = New clsRSA   
16  
17  
18ObjRSA.PublicKey = LngKeyE   
19ObjRSA.Modulus = LngKeyN   
20Encryptstr = ObjRSA.Encode(StrMessage)   
21Set ObjRSA = Nothing   
22end function   
23  
24  
25  
26  
27function decryptstr(Message)   
28Dim LngKeyE   
29Dim LngKeyD   
30Dim LngKeyN   
31Dim StrMessage   
32Dim ObjRSA   
33  
34  
35LngKeyE = "32823"   
36LngKeyD = "20643"   
37LngKeyN = "29893"   
38StrMessage = Message   
39  
40Set ObjRSA = New clsRSA   
41  
42ObjRSA.PrivateKey =LngKeyD   
43ObjRSA.Modulus=LngKeyN   
44decryptstr=ObjRSA.Decode(StrMessage)   
45Set ObjRSA = Nothing   
46end function   
47  
48  
49  
50dim last,first   
51first="sohu"   
52Response.Write "加密前为:"&first   
53last=Encryptstr(first)   
54Response.Write "加密后为"&last   
55Response.Write "解密后为" &decryptstr(last)   
56  
Published At
Categories with Web编程
Tagged with
comments powered by Disqus