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

来源:互联网 发布:hadoop与非结构化数据 编辑:程序博客网 时间:2024/05/04 04:17
在ASP中加密方法有对应的解密方法好象不多,现在根据前辈资料整理出在asp中加密与解密函数

rsa.asp
<%
rem 在ASP中实现加密与解密,加密方法:根据RSA
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)

%>
原创粉丝点击