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

2016-01-29 20:24 94 1 收藏

在asp中通过vbs类实现rsa加密与解密,在asp中通过vbs类实现rsa加密与解密

【 tulaoshi.com - ASP 】

本文章有两文件组成
test.asp 测试演示文件
clsrsa.asp 实现rsa加密与解密的vbs类文件
下面是代码:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

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
<TITLERSA Cipher Demonstration</TITLE
</HEAD
<BODY
<H1RSA 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
<TDPublic 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
<TDPrivate Key</TD
<TD<INPUT name="KeyD" value="<%=Server.HTMLEncode(LngKeyD)%"</TD
</TR
<TR
<TDModulus</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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

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
lStrCrypte

来源:https://www.tulaoshi.com/n/20160129/1511111.html

延伸阅读
标签: Web开发
源码 /**  * 类名:      MD5Digestbr  * 说明:   用来进行密码加密的md5公用参数br  * 编写日期:  2001/03/05br  * 修改者:    br  * 修改信息:  br  * @author     edgarlo edgarlo@c...
标签: ASP
<!--#include file="token.asp"-- <% ' ************************************************************************* ' This is all test/example code showing the calling syntax of the ' cBuffer class ... the interface to the cBuffer object is quite simple. ' ' Use it for reference ... delete it ... whatever. ' ********...
标签: Web开发
% rem 文章标题: 利用vbs类实现css按钮 rem 作者:yanek rem 联系:aspboy@263.net Class CssButton Public Name Public BackColor Public BorderColor Public Font Public FontColor Public Width Public Text Public Url Public MouseOverColor Public Function GenerateStyleTag() 'Create the STYLE tag Dim strStyle strStyle = "STY...
using System; using System.IO; using System.Security.Cryptography; namespace Vavic { /// /// Security 的摘要说明。 /// public class Security { const string KEY_64 = "VavicApp"; const string IV_64 = "VavicApp"; //注意了,是8个字符,64位 public Security() { // // TODO: 在此处添加构造函数逻辑 // } publ...
.NET将原来独立的API和SDK合并到一个框架中,这对于程序开发人员非常有利。它将CryptoAPI改编进.NET的System.Security.Cryptography名字空间,使密码服务摆脱了SDK平台的神秘性,变成了简单的.NET名字空间的使用。由于随着整个框架组件一起共享,密码服务更容易实现了,现在仅仅需要学习System.Security.Cryptography名字空间的功能和用于解决...

经验教程

156

收藏

64
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部