在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