DBMNG数据库管理与应用

独立思考能力,对于从事科学研究或其他任何工作,都是十分必要的。
当前位置:首页 > 服务器配置 > IIS&ASP

RSA在ASP中实现加密与解密方法:

<%
rem 根据RSA在ASP中实现加密与解密,加密方法:
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
%>
<%
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
%>
<%
'=====================以下是加密接口☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
FUNCTION callRSA(mingwen)
callRSA=Encryptstr(mingwen)'加密
END FUNCTION
'=====================以上是加密接口☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
%>
<%
'=====================以下是解密接口☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
FUNCTION recvrRSA(miwen)
recvrRSA=decryptstr(miwen)'解密
END FUNCTION
'=====================以上是解密接口☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
%>
<%=recvrRSA("0F3E419C71C500FA1FC8")+":"+recvrRSA("2850615C71C500FA1FC82B7F2F500F9C615C1FC8")%>
本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号