服务器之家

服务器之家 > 正文

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

时间:2019-10-22 10:05     来源/作者:asp教程网

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

rsa.asp

  1. <% 
  2.  
  3. rem在ASP中实现加密与解密,加密方法:根据RSA 
  4.  
  5. rem联系:hnsoso@sina.com 
  6.  
  7. ClassclsRSA 
  8.  
  9. PublicPrivateKey 
  10.  
  11. PublicPublicKey 
  12.  
  13. PublicModulus 
  14.  
  15. PublicFunctionCrypt(pLngMessage,pLngKey) 
  16.  
  17. OnErrorResumeNext 
  18.  
  19. DimlLngMod 
  20.  
  21. DimlLngResult 
  22.  
  23. DimlLngIndex 
  24.  
  25. IfpLngKeyMod2=0Then 
  26.  
  27. lLngResult=1 
  28.  
  29. ForlLngIndex=1TopLngKey/2 
  30.  
  31. lLngMod=(pLngMessage^2)ModModulus 
  32.  
  33. 'Modmayerroronkeygeneration 
  34.  
  35. lLngResult=(lLngMod*lLngResult)ModModulus 
  36.  
  37. IfErrThenExitFunction 
  38.  
  39. Next 
  40.  
  41. Else 
  42.  
  43. lLngResult=pLngMessage 
  44.  
  45. ForlLngIndex=1TopLngKey/2 
  46.  
  47. lLngMod=(pLngMessage^2)ModModulus 
  48.  
  49. OnErrorResumeNext 
  50.  
  51. 'Modmayerroronkeygeneration 
  52.  
  53. lLngResult=(lLngMod*lLngResult)ModModulus 
  54.  
  55. IfErrThenExitFunction 
  56.  
  57. Next 
  58.  
  59. EndIf 
  60.  
  61. Crypt=lLngResult 
  62.  
  63. EndFunction 
  64.  
  65. PublicFunctionEncode(ByValpStrMessage) 
  66.  
  67. DimlLngIndex 
  68.  
  69. DimlLngMaxIndex 
  70.  
  71. DimlBytAscii 
  72.  
  73. DimlLngEncrypted 
  74.  
  75. lLngMaxIndex=Len(pStrMessage) 
  76.  
  77. IflLngMaxIndex=0ThenExitFunction 
  78.  
  79. ForlLngIndex=1TolLngMaxIndex 
  80.  
  81. lBytAscii=Asc(Mid(pStrMessage,lLngIndex,1)) 
  82.  
  83. lLngEncrypted=Crypt(lBytAscii,PublicKey) 
  84.  
  85. Encode=Encode&NumberToHex(lLngEncrypted,4) 
  86.  
  87. Next 
  88.  
  89. EndFunction 
  90.  
  91. PublicFunctionDecode(ByValpStrMessage) 
  92.  
  93. DimlBytAscii 
  94.  
  95. DimlLngIndex 
  96.  
  97. DimlLngMaxIndex 
  98.  
  99. DimlLngEncryptedData 
  100.  
  101. Decode="" 
  102.  
  103. lLngMaxIndex=Len(pStrMessage) 
  104.  
  105. ForlLngIndex=1TolLngMaxIndexStep4 
  106.  
  107. lLngEncryptedData=HexToNumber(Mid(pStrMessage,lLngIndex,4)) 
  108.  
  109. lBytAscii=Crypt(lLngEncryptedData,PrivateKey) 
  110.  
  111. Decode=Decode&Chr(lBytAscii) 
  112.  
  113. Next 
  114.  
  115. EndFunction 
  116.  
  117. PrivateFunctionNumberToHex(ByRefpLngNumber,ByRefpLngLength) 
  118.  
  119. NumberToHex=Right(String(pLngLength,"0")&Hex(pLngNumber),pLngLength) 
  120.  
  121. EndFunction 
  122.  
  123. PrivateFunctionHexToNumber(ByRefpStrHex) 
  124.  
  125. HexToNumber=CLng("&h"&pStrHex) 
  126.  
  127. EndFunction 
  128.  
  129. EndClass 
  130.  
  131. %> 

test.asp

  1. <% 
  2.  
  3. functionEncryptstr(Message) 
  4.  
  5. DimLngKeyE 
  6.  
  7. DimLngKeyD 
  8.  
  9. DimLngKeyN 
  10.  
  11. DimStrMessage 
  12.  
  13. DimObjRSA 
  14.  
  15. LngKeyE="32823" 
  16.  
  17. LngKeyD="20643" 
  18.  
  19. LngKeyN="29893" 
  20.  
  21. StrMessage=Message 
  22.  
  23. SetObjRSA=NewclsRSA 
  24.  
  25. ObjRSA.PublicKey=LngKeyE 
  26.  
  27. ObjRSA.Modulus=LngKeyN 
  28.  
  29. Encryptstr=ObjRSA.Encode(StrMessage) 
  30.  
  31. SetObjRSA=Nothing 
  32.  
  33. endfunction 
  34.  
  35. functiondecryptstr(Message) 
  36.  
  37. DimLngKeyE 
  38.  
  39. DimLngKeyD 
  40.  
  41. DimLngKeyN 
  42.  
  43. DimStrMessage 
  44.  
  45. DimObjRSA 
  46.  
  47. LngKeyE="32823" 
  48.  
  49. LngKeyD="20643" 
  50.  
  51. LngKeyN="29893" 
  52.  
  53. StrMessage=Message 
  54.  
  55. SetObjRSA=NewclsRSA 
  56.  
  57. ObjRSA.PrivateKey=LngKeyD 
  58.  
  59. ObjRSA.Modulus=LngKeyN 
  60.  
  61. decryptstr=ObjRSA.Decode(StrMessage) 
  62.  
  63. SetObjRSA=Nothing 
  64.  
  65. endfunction 
  66.  
  67. dimlast,first 
  68.  
  69. first="sohu" 
  70.  
  71. Response.Write"加密前为:"&first 
  72.  
  73. last=Encryptstr(first) 
  74.  
  75. Response.Write"加密后为"&last 
  76.  
  77. Response.Write"解密后为"&decryptstr(last) 
  78.  
  79. %> 
标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
返回顶部