国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP教程 - 在asp中通過vbs類實現(xiàn)rsa加密與解密的代碼

在asp中通過vbs類實現(xiàn)rsa加密與解密的代碼

2019-10-22 10:06asp代碼網(wǎng) ASP教程

在asp中通過vbs類實現(xiàn)rsa加密與解密,建議入精華

在asp中通過vbs類實現(xiàn)rsa加密與解密,建議入精華 

本文章有兩文件組成 
test.asp 測試演示文件 
clsrsa.asp 實現(xiàn)rsa加密與解密的vbs類文件 
下面是代碼: 

1. test.asp 

復(fù)制代碼代碼如下:


<%  
rem 文章標(biāo)題:在asp中通過vbs類實現(xiàn)rsa加密與解密  
rem 收集整理:yanek  
rem 聯(lián)系:aspboy@263.net  

%>  
<%Option Explicit%>  
<!--#INCLUDE FILE="clsRSA.asp"-->  
<%  

Dim LngKeyE  
Dim LngKeyD  
Dim LngKeyN  
Dim StrMessage  
Dim ObjRSA  
If Not Request.Form = "" Then  

    LngKeyE = Request.Form("KeyE")  
    LngKeyD = Request.Form("KeyD")  
    LngKeyN = Request.Form("KeyN")  
    StrMessage = Request.Form("Message")  

    Set ObjRSA = New clsRSA  

    Select Case Request.Form("Action")  
        Case "Generate Keys"  
            Call ObjRSA.GenKey()  
            LngKeyE = ObjRSA.PublicKey  
            LngKeyD = ObjRSA.PrivateKey  
            LngKeyN = ObjRSA.Modulus  
        Case "Encrypt"  
            ObjRSA.PublicKey = LngKeyE  
            ObjRSA.Modulus = LngKeyN  
            StrMessage = ObjRSA.Encode(StrMessage)  
        Case "Decrypt"  
            ObjRSA.PrivateKey = LngKeyD  
            ObjRSA.Modulus = LngKeyN  
            StrMessage = ObjRSA.Decode(StrMessage)  
    End Select  

    Set ObjRSA = Nothing  

End If  
%>  
<HTML>  
    <HEAD>  
        <TITLE>RSA Cipher Demonstration</TITLE>  
    </HEAD>  
    <BODY>  
        <H1>RSA Cipher Demonstration</H1>  
        <P>  
            You will first need to generate your public/privage key-pair  
            before you can encrypt/decrypt messages.  
        </P>  
        <FORM method="post">  
            <TABLE>  
                <TR>  
                    <TD>Public Key</TD>  
                    <TD><INPUT name="KeyE" value="<%=Server.HTMLEncode(LngKeyE)%>"></TD>  
                    <TD rowspan="3">  
                        <INPUT type="Submit" name="Action" value="Generate Keys">  
                    </TD>  
                </TR>  
                <TR>  
                    <TD>Private Key</TD>  
                    <TD><INPUT name="KeyD" value="<%=Server.HTMLEncode(LngKeyD)%>"></TD>  
                </TR>  
                <TR>  
                    <TD>Modulus</TD>  
                    <TD><INPUT name="KeyN" value="<%=Server.HTMLEncode(LngKeyN)%>"></TD>  
                </TR>  
                <TR>  
                    <TD colspan="3">  
                        Test Message:<BR>  
                        <TEXTAREA name="Message" cols="50" rows="7"><%=Server.HTMLEncode(StrMessage)%></TEXTAREA>  
                    </TD>  
                </TR>  
                <TR>  
                    <TD align="right" colspan="3">  
                        <INPUT type="Submit" name="Action" value="Encrypt">  
                        <INPUT type="Submit" name="Action" value="Decrypt">  
                    </TD>  
                </TR>  
            </TABLE>  
        </FORM>  
            </BODY>  
</HTML> 

    


clsrsa.asp   

復(fù)制代碼代碼如下:


<%  
rem 實現(xiàn)rsa加密與解密的vbs類文件  
rem 文章標(biāo)題:在asp中通過vbs類實現(xiàn)rsa加密與解密  
rem 收集整理:yanek  
rem 聯(lián)系:aspboy@263.net  

' RSA Encryption Class  
'  
' .PrivateKey  
'        Your personal private key.  Keep this hidden.  
'  
' .PublicKey  
'        Key for others to encrypt data with.  
'  
' .Modulus  
'        Used with both public and private keys when encrypting  
'        and decrypting data.  
'  
' .GenKey()  
'        Creates Public/Private key set and Modulus  
'  
' .Crypt(pLngMessage, pLngKey)    
'        Encrypts/Decrypts message and returns   
'        as a string.  
'  
' .Encode(pStrMessage)  
'        Encrypts message and returns in double-hex format  
'  
' .Decode(pStrMessage)  
'        Decrypts message from double-hex format and returns a string  
'  
Class clsRSA  

    Public PrivateKey  
    Public PublicKey  
    Public Modulus  

    Public Sub GenKey()  
        Dim lLngPhi  
        Dim q  
        Dim p  

        Randomize  

        Do  
            Do  

                ' 2 random primary numbers (0 to 1000)  
                Do  
                    p = Rnd * 1000 \ 1  
                Loop While Not IsPrime(p)  

                Do  
                    q = Rnd * 1000 \ 1  
                Loop While Not IsPrime(q)  

                  
                ' n = product of 2 primes  
                Modulus = p * q \ 1  

                ' random decryptor (2 to n)  
                PrivateKey = Rnd * (Modulus - 2) \ 1 + 2  

                lLngPhi = (p - 1) * (q - 1) \ 1  
                PublicKey = Euler(lLngPhi, PrivateKey)  

            Loop While PublicKey = 0 Or PublicKey = 1  

        ' Loop if we can't crypt/decrypt a byte      
        Loop While Not TestCrypt(255)  

    End Sub  

    Private Function TestCrypt(ByRef pBytData)  
        Dim lStrCrypted  
        lStrCrypted = Crypt(pBytData, PublicKey)  
        TestCrypt = Crypt(lStrCrypted, PrivateKey) = pBytData  
    End Function  

    Private Function Euler(ByRef pLngPHI, ByRef pLngKey)  

        Dim lLngR(3)  
        Dim lLngP(3)  
        Dim lLngQ(3)  

        Dim lLngCounter  
        Dim lLngResult  

        Euler = 0  

        lLngR(1) = pLngPHI: lLngR(0) = pLngKey  
        lLngP(1) = 0: lLngP(0) = 1  
        lLngQ(1) = 2: lLngQ(0) = 0  

        lLngCounter = -1  

        Do Until lLngR(0) = 0  

            lLngR(2) = lLngR(1): lLngR(1) = lLngR(0)  
            lLngP(2) = lLngP(1): lLngP(1) = lLngP(0)  
            lLngQ(2) = lLngQ(1): lLngQ(1) = lLngQ(0)  

            lLngCounter = lLngCounter + 1  

            lLngR(0) = lLngR(2) Mod lLngR(1)  
            lLngP(0) = ((lLngR(2)\lLngR(1)) * lLngP(1)) + lLngP(2)  
            lLngQ(0) = ((lLngR(2)\lLngR(1)) * lLngQ(1)) + lLngQ(2)  

        Loop  

        lLngResult = (pLngKey * lLngP(1)) - (pLngPHI * lLngQ(1))  

        If lLngResult > 0 Then  
            Euler = lLngP(1)  
        Else  
            Euler = Abs(lLngP(1)) + pLngPHI  
        End If  

    End Function  

    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  

    Private Function IsPrime(ByRef pLngNumber)  
        Dim lLngSquare  
        Dim lLngIndex  
        IsPrime = False  
        If pLngNumber < 2 Then Exit Function  
        If pLngNumber Mod 2 = 0 Then Exit Function  
        lLngSquare = Sqr(pLngNumber)  
        For lLngIndex = 3 To lLngSquare Step 2  
            If pLngNumber Mod lLngIndex = 0 Then Exit Function  
        Next  
        IsPrime = True  
    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  
%> 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品国精品久久99热 | 国产精品国产成人国产三级 | 欧美在线小视频 | 亚洲精品午夜 | 色的视频网站 | 亚洲精品欧洲精品 | 一级片在线免费观看视频 | 亚洲精品一区二区三区在线播放 | 日韩成人在线电影 | 欧美一区二区三区在线视频 | 日韩欧美一二三 | 天天射天天干 | 亚洲视频在线免费观看 | 久久国产精品一区二区三区 | 国产精品久久九九 | 国产视频第一页 | 国产91精品一区二区绿帽 | 精品黄色大片 | 日韩成人在线一区 | 免费观看a级毛片在线播放 成人片免费看 | 国精品一区 | 天天躁日日躁bbbbb | 久久久精品网 | 欧美国产日韩一区 | 欧美 日韩 国产 一区 | 在线观看91 | 91精品国产91久久久久久吃药 | 久操成人 | 中文字幕成人网 | 欧美性猛交一区二区三区精品 | 中文字幕在线观看精品视频 | 99在线精品视频 | 国内精品视频在线观看 | 国产精品日韩三级 | 精品黄色一级片 | 午夜成人影视 | 日日日日干干干干 | 中文字幕精品一区二区三区精品 | 日韩欧美天堂 | 久久久久久久一区 | 中文字幕自拍偷拍 |