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

时间:2021-05-25

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

rsa.asp
<%
rem在ASP中实现加密与解密,加密方法:根据RSA
rem联系:hnsoso@sina.com
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)

%>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章