gpt4 book ai didi

在asp中通过vbs类实现rsa加密与解密的代码

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 36 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章在asp中通过vbs类实现rsa加密与解密的代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在asp中通过vbs类实现rsa加密与解密,建议入精华  本文章有两文件组成  test.asp 测试演示文件  clsrsa.asp 实现rsa加密与解密的vbs类文件  下面是代码:  1. test.asp  。

复制代码代码如下

<%   rem 文章标题:在asp中通过vbs类实现rsa加密与解密   rem 收集整理:yanek   rem 联系: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    。

复制代码代码如下

<%   rem 实现rsa加密与解密的vbs类文件   rem 文章标题:在asp中通过vbs类实现rsa加密与解密   rem 收集整理:yanek   rem 联系: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   %>  。

最后此篇关于在asp中通过vbs类实现rsa加密与解密的代码的文章就讲到这里了,如果你想了解更多关于在asp中通过vbs类实现rsa加密与解密的代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com