一段在asp中加密与解密对应的函数

2018-09-06 10:44

阅读:635

  在ASP中加密方法有对应的解密方法好象不多,现在根据前辈资料整理出在asp中加密与解密函数

rsa.asp
<%
rem在ASP中实现加密与解密,加密方法:根据RSA
rem联系
ClassclsRSA

PublicPrivateKey
PublicPublicKey
PublicModulus



PublicFunctionCrypt(pLngMessage,pLngKey)
OnErrorResumeNext
DimlLngMod
DimlLngResult
DimlLngIndex
IfpLngKeyMod2=0Then
lLngResult=1
ForlLngIndex=1TopLngKey/2
lLngMod=(pLngMessage^2)ModModulus
Modmayerroronkeygeneration
lLngResult=(lLngMod*lLngResult)ModModulus
IfErrThenExitFunction
Next
Else
lLngResult=pLngMessage
ForlLngIndex=1TopLngKey/2
lLngMod=(pLngMessage^2)ModModulus
OnErrorResumeNext
Modmayerroronkeygeneration
lLngResult=(lLngMod*lLngResult)ModModulus
IfErrThenExitFunction
Next
EndIf
Crypt=lLngResult
EndFunction



PublicFunctionEncode(ByValpStrMessage)
DimlLngIndex
DimlLngMaxIndex
DimlBytAscii
DimlLngEncrypted
lLngMaxIndex=Len(pStrMessage)
IflLngMaxIndex=0ThenExitFunction
ForlLngIndex=1TolLngMaxIndex
lBytAscii=Asc(Mid(pStrMessage,lLngIndex,1))
lLngEncrypted=Crypt(lBytAscii,PublicKey)
Encode=Encode&NumberToHex(lLngEncrypted,4)
Next
EndFunction

PublicFunctionDecode(ByValpStrMessage)
DimlBytAscii
DimlLngIndex
DimlLngMaxIndex
DimlLngEncryptedData
Decode=
lLngMaxIndex=Len(pStrMessage)
ForlLngIndex=1TolLngMaxIndexStep4
lLngEncryptedData=HexToNumber(Mid(pStrMessage,lLngIndex,4))
lBytAscii=Crypt(lLngEncryptedData,PrivateKey)
Decode=Decode&Chr(lBytAscii)
Next
EndFunction

PrivateFunctionNumberToHex(ByRefpLngNumber,ByRefpLngLength)
NumberToHex=Right(String(pLngLength,0)&Hex(pLngNumber),pLngLength)
EndFunction

PrivateFunctionHexToNumber(ByRefpStrHex)
HexToNumber=CLng(&h&pStrHex)
EndFunction

EndClass
%>



test.asp
<!--#INCLUDEFILE=RSA.asp-->
<%
functionEncryptstr(Message)
DimLngKeyE
DimLngKeyD
DimLngKeyN
DimStrMessage
DimObjRSA


LngKeyE=32823
LngKeyD=20643
LngKeyN=29893
StrMessage=Message

SetObjRSA=NewclsRSA


ObjRSA.PublicKey=LngKeyE
ObjRSA.Modulus=LngKeyN
Encryptstr=ObjRSA.Encode(StrMessage)
SetObjRSA=Nothing
endfunction




functiondecryptstr(Message)
DimLngKeyE
DimLngKeyD
DimLngKeyN
DimStrMessage
DimObjRSA


LngKeyE=32823
LngKeyD=20643
LngKeyN=29893
StrMessage=Message

SetObjRSA=NewclsRSA

ObjRSA.PrivateKey=LngKeyD
ObjRSA.Modulus=LngKeyN
decryptstr=ObjRSA.Decode(StrMessage)
SetObjRSA=Nothing
endfunction



dimlast,first
first=sohu
Response.Write加密前为:&first
last=Encryptstr(first)
Response.Write加密后为&last
Response.Write解密后为&decryptstr(last)

%>


评论


亲,登录后才可以留言!