程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 一段在asp中加密與解密對應的函數

一段在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)

%>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved