Ò»¶ÎÔÚaspÖмÓÃÜÓë½âÃܶÔÓ¦µÄº¯Êý
ÔÚASPÖмÓÃÜ·½·¨ÓжÔÓ¦µÄ½âÃÜ·½·¨ºÃÏ󲻶à,ÏÖÔÚ¸ù¾ÝÇ°±²×ÊÁÏÕûÀí³öÔÚaspÖмÓÃÜÓë½âÃܺ¯Êý
rsa.asp
<%
rem ÔÚASPÖÐʵÏÖ¼ÓÃÜÓë½âÃÜ,¼ÓÃÜ·½·¨:¸ù¾ÝRSA
rem ÁªÏµ:hnsoso@sina.com
Class clsRSA
¡¡¡¡Public PrivateKey
¡¡¡¡Public PublicKey
¡¡¡¡Public Modulus
¡¡¡¡
¡¡¡¡
¡¡¡¡
¡¡¡¡Public Function Crypt(pLngMessage, pLngKey)
¡¡¡¡¡¡¡¡On Error Resume Next
¡¡¡¡¡¡¡¡Dim lLngMod
¡¡¡¡¡¡¡¡Dim lLngResult
¡¡¡¡¡¡¡¡Dim lLngIndex
¡¡¡¡¡¡¡¡If pLngKey Mod 2 = 0 Then
¡¡¡¡¡¡¡¡¡¡¡¡lLngResult = 1
¡¡¡¡¡¡¡¡¡¡¡¡For lLngIndex = 1 To pLngKey / 2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lLngMod = (pLngMessage ^ 2) Mod Modulus
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡' Mod may error on key generation
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lLngResult = (lLngMod * lLngResult) Mod Modulus
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If Err Then Exit Function
¡¡¡¡¡¡¡¡¡¡¡¡Next
¡¡¡¡¡¡¡¡Else
¡¡¡¡¡¡¡¡¡¡¡¡lLngResult = pLngMessage
¡¡¡¡¡¡¡¡¡¡¡¡For lLngIndex = 1 To pLngKey / 2
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lLngMod = (pLngMessage ^ 2) Mod Modulus
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡On Error Resume Next
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡' Mod may error on key generation
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lLngResult = (lLngMod * lLngResult) Mod Modulus
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡If Err Then Exit Function
¡¡¡¡¡¡¡¡¡¡¡¡Next
¡¡¡¡¡¡¡¡End If
¡¡¡¡¡¡¡¡Crypt = lLngResult
¡¡¡¡End Function
¡¡¡¡Public Function Encode(ByVal pStrMessage)
¡¡¡¡¡¡¡¡Dim lLngIndex
¡¡¡¡¡¡¡¡Dim lLngMaxIndex
¡¡¡¡¡¡¡¡Dim lBytAscii
¡¡¡¡¡¡¡¡Dim lLngEncrypted
¡¡¡¡¡¡¡¡lLngMaxIndex = Len(pStrMessage)
¡¡¡¡¡¡¡¡If lLngMaxIndex = 0 Then Exit Function
¡¡¡¡¡¡¡¡For lLngIndex = 1 To lLngMaxIndex
¡¡¡¡¡¡¡¡¡¡¡¡lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
¡¡¡¡¡¡¡¡¡¡¡¡lLngEncrypted = Crypt(lBytAscii, PublicKey)
¡¡¡¡¡¡¡¡¡¡¡¡Encode = Encode & NumberToHex(lLngEncrypted, 4)
¡¡¡¡¡¡¡¡Next
¡¡¡¡End Function
¡¡¡¡
¡¡¡¡Public Function Decode(ByVal pStrMessage)
¡¡¡¡¡¡¡¡Dim lBytAscii
¡¡¡¡¡¡¡¡Dim lLngIndex
¡¡¡¡¡¡¡¡Dim lLngMaxIndex
¡¡¡¡¡¡¡¡Dim lLngEncryptedData
¡¡¡¡¡¡¡¡Decode = ""
¡¡¡¡¡¡¡¡lLngMaxIndex = Len(pStrMessage)
¡¡¡¡¡¡¡¡For lLngIndex = 1 To lLngMaxIndex Step 4
¡¡¡¡¡¡¡¡¡¡¡¡lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
¡¡¡¡¡¡¡¡¡¡¡¡lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
¡¡¡¡¡¡¡¡¡¡¡¡Decode = Decode & Chr(lBytAscii)
¡¡¡¡¡¡¡¡Next
¡¡¡¡End Function
¡¡¡¡
¡¡¡¡Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
¡¡¡¡¡¡¡¡NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber),
pLngLength)
¡¡¡¡End Function
¡¡¡¡Private Function HexToNumber(ByRef pStrHex)
¡¡¡¡¡¡¡¡HexToNumber = CLng("&h" & pStrHex)
¡¡¡¡End Function
End Class
%>
test.asp
<!--#INCLUDE FILE="RSA.asp"-->
<%
function Encryptstr(Message)
Dim LngKeyE
Dim LngKeyD
Dim LngKeyN
Dim StrMessage
Dim ObjRSA
¡¡¡¡LngKeyE = "32823"
¡¡¡¡LngKeyD = "20643"
¡¡¡¡LngKeyN = "29893"
¡¡¡¡StrMessage = Message
¡¡¡¡
¡¡¡¡Set ObjRSA = New clsRSA
¡¡¡¡
¡¡
¡¡¡¡¡¡¡¡¡¡¡¡ObjRSA.PublicKey = LngKeyE
¡¡¡¡¡¡¡¡¡¡¡¡ObjRSA.Modulus = LngKeyN
¡¡¡¡¡¡¡¡¡¡¡¡Encryptstr = ObjRSA.Encode(StrMessage)
¡¡¡¡Set ObjRSA = Nothing
end function
function decryptstr(Message)
Dim LngKeyE
Dim LngKeyD
Dim LngKeyN
Dim StrMessage
Dim ObjRSA
¡¡¡¡LngKeyE = "32823"
¡¡¡¡LngKeyD = "20643"
¡¡¡¡LngKeyN = "29893"
¡¡¡¡StrMessage = Message
¡¡¡¡
¡¡¡¡Set ObjRSA = New clsRSA
¡¡¡¡¡¡¡¡¡¡¡¡ObjRSA.PrivateKey =LngKeyD
¡¡¡¡¡¡¡¡¡¡¡¡ObjRSA.Modulus=LngKeyN
¡¡¡¡¡¡¡¡¡¡¡¡decryptstr=ObjRSA.Decode(StrMessage)
¡¡¡¡Set ObjRSA = Nothing
end function
dim last,first
first="sohu"
Response.Write "¼ÓÃÜǰΪ:"&first
last=Encryptstr(first)
Response.Write "¼ÓÃܺóΪ"&last
Response.Write "½âÃܺóΪ" &decryptstr(last)
%>