冷月葬花魂 发表于 2015-1-16 23:15:03

ASP编程:在asp中经由过程vbs类完成rsa加密与解密

由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。加密|解密本文章有两文件构成
test.asp测试演示文件
clsrsa.asp完成rsa加密与解密的vbs类文件
上面是代码:

1.test.asp

<%
rem文章题目:在asp中经由过程vbs类完成rsa加密与解密
rem搜集收拾:yanek
rem接洽:aspboy@263.net

%>
<%OptionExplicit%>
<!--#INCLUDEFILE="clsRSA.asp"-->
<%

DimLngKeyE
DimLngKeyD
DimLngKeyN
DimStrMessage
DimObjRSA
IfNotRequest.Form=""Then

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

SetObjRSA=NewclsRSA

SelectCaseRequest.Form("Action")
Case"GenerateKeys"
CallObjRSA.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)
EndSelect

SetObjRSA=Nothing

EndIf
%>
<HTML>
<HEAD>
<TITLE>RSACipherDemonstration</TITLE>
</HEAD>
<BODY>
<H1>RSACipherDemonstration</H1>
<P>
Youwillfirstneedtogenerateyourpublic/privagekey-pair
beforeyoucanencrypt/decryptmessages.
</P>
<FORMmethod="post">
<TABLE>
<TR>
<TD>PublicKey</TD>
<TD><INPUTname="KeyE"value="<%=Server.HTMLEncode(LngKeyE)%>"></TD>
<TDrowspan="3">
<INPUTtype="Submit"name="Action"value="GenerateKeys">
</TD>
</TR>
<TR>
<TD>PrivateKey</TD>
<TD><INPUTname="KeyD"value="<%=Server.HTMLEncode(LngKeyD)%>"></TD>
</TR>
<TR>
<TD>Modulus</TD>
<TD><INPUTname="KeyN"value="<%=Server.HTMLEncode(LngKeyN)%>"></TD>
</TR>
<TR>
<TDcolspan="3">
TestMessage:<BR>
<TEXTAREAname="Message"cols="50"rows="7"><%=Server.HTMLEncode(StrMessage)%></TEXTAREA>
</TD>
</TR>
<TR>
<TDalign="right"colspan="3">
<INPUTtype="Submit"name="Action"value="Encrypt">
<INPUTtype="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

RSAEncryptionClass

.PrivateKey
Yourpersonalprivatekey.Keepthishidden.

.PublicKey
Keyforotherstoencryptdatawith.

.Modulus
Usedwithbothpublicandprivatekeyswhenencrypting
anddecryptingdata.

.GenKey()
CreatesPublic/PrivatekeysetandModulus

.Crypt(pLngMessage,pLngKey)
Encrypts/Decryptsmessageandreturns
asastring.

.Encode(pStrMessage)
Encryptsmessageandreturnsindouble-hexformat

.Decode(pStrMessage)
Decryptsmessagefromdouble-hexformatandreturnsastring

ClassclsRSA

PublicPrivateKey
PublicPublicKey
PublicModulus

PublicSubGenKey()
DimlLngPhi
Dimq
Dimp

Randomize

Do
Do

2randomprimarynumbers(0to1000)
Do
p=Rnd*10001
LoopWhileNotIsPrime(p)

Do
q=Rnd*10001
LoopWhileNotIsPrime(q)


n=productof2primes
Modulus=p*q1

randomdecryptor(2ton)
PrivateKey=Rnd*(Modulus-2)1+2

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

LoopWhilePublicKey=0OrPublicKey=1

Loopifwecantcrypt/decryptabyte
LoopWhileNotTestCrypt(255)

EndSub

PrivateFunctionTestCry</p>在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。

因胸联盟 发表于 2015-1-20 08:41:23

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

爱飞 发表于 2015-1-29 06:15:03

运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。

第二个灵魂 发表于 2015-1-29 18:59:08

还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。

透明 发表于 2015-2-15 08:43:55

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

愤怒的大鸟 发表于 2015-3-4 11:24:07

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件

谁可相欹 发表于 2015-3-11 18:55:57

学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:

活着的死人 发表于 2015-3-19 07:58:36

那么,ASP.Net有哪些改进呢?

飘灵儿 发表于 2015-3-27 15:09:52

从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
页: [1]
查看完整版本: ASP编程:在asp中经由过程vbs类完成rsa加密与解密