当前位置导航:炫浪网>>网络学院>>网页制作>>ASP教程

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

       在ASP中加密方法有对应的解密方法好象不多,现在根据前辈资料整理出在asp中加密与解密函数
  
  rsa.asp
  <%
  rem 在ASP中实现加密与解密,加密方法:根据RSA
  rem 联系:[email protected]
  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)
  
  %>
  
  
  

 
相关内容
赞助商链接