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)

%> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值