标题: 一段在asp中加密与解密对应的函数
问天
元帅
Rank: 1


元帅勋章 终身成就勋章
UID 11493
精华 187
积分 34221
帖子 33355
威望 91
金币 13148
热心 2619
阅读权限 100
注册 2006-4-7
状态 离线
一段在asp中加密与解密对应的函数

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

rsa.asp
<%
rem 在ASP中实现加密与解密,加密方法:根据RSA
rem 联系:hnsoso@sina.com
Class clsRSA

   Public PrivateKey
   Public PublicKey
   Public Modulus
  
  
  
   Public Function Crypt(pLngMessage, pLngKey)
     On Error Resume Next
     Dim lLngMod
     Dim lLngResult
     Dim lLngIndex
     If pLngKey Mod 2 = 0 Then
       lLngResult = 1
       For lLngIndex = 1 To pLngKey / 2
         lLngMod = (pLngMessage ^ 2) Mod Modulus
         ' Mod may error on key generation
         lLngResult = (lLngMod * lLngResult) Mod Modulus
         If Err Then Exit Function
       Next
     Else
       lLngResult = pLngMessage     
       For lLngIndex = 1 To pLngKey / 2
         lLngMod = (pLngMessage ^ 2) Mod Modulus
         On Error Resume Next
         ' Mod may error on key generation
         lLngResult = (lLngMod * lLngResult) Mod Modulus
         If Err Then Exit Function
       Next
     End If
     Crypt = lLngResult
   End Function



   Public Function Encode(ByVal pStrMessage)
     Dim lLngIndex
     Dim lLngMaxIndex
     Dim lBytAscii
     Dim lLngEncrypted
     lLngMaxIndex = Len(pStrMessage)
     If lLngMaxIndex = 0 Then Exit Function
     For lLngIndex = 1 To lLngMaxIndex
       lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
       lLngEncrypted = Crypt(lBytAscii, PublicKey)
       Encode = Encode &;amp; NumberToHex(lLngEncrypted, 4)
     Next
   End Function
  
   Public Function Decode(ByVal pStrMessage)     
     Dim lBytAscii
     Dim lLngIndex
     Dim lLngMaxIndex
     Dim lLngEncryptedData
     Decode = ""
     lLngMaxIndex = Len(pStrMessage)
     For lLngIndex = 1 To lLngMaxIndex Step 4
       lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
       lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
       Decode = Decode &;amp; Chr(lBytAscii)
     Next
   End Function
  
   Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
     NumberToHex = Right(String(pLngLength, "0") &;amp; Hex(pLngNumber), pLngLength)
   End Function

   Private Function HexToNumber(ByRef pStrHex)
     HexToNumber = CLng("&;amp;h" &;amp; pStrHex)
   End Function

End Class
%>



test.asp
<!--#INCLUDE FILE="RSA.asp"-->
<%
function Encryptstr(Message)
Dim LngKeyE
Dim LngKeyD
Dim LngKeyN
Dim StrMessage
Dim ObjRSA   


   LngKeyE = "32823"
   LngKeyD = "20643"
   LngKeyN = "29893"
   StrMessage = Message
  
   Set ObjRSA = New clsRSA
  
 
       ObjRSA.PublicKey = LngKeyE
       ObjRSA.Modulus = LngKeyN
       Encryptstr = ObjRSA.Encode(StrMessage)
   Set ObjRSA = Nothing
end function




function decryptstr(Message)
Dim LngKeyE
Dim LngKeyD
Dim LngKeyN
Dim StrMessage
Dim ObjRSA


   LngKeyE = "32823"
   LngKeyD = "20643"
   LngKeyN = "29893"
   StrMessage = Message
  
   Set ObjRSA = New clsRSA

       ObjRSA.PrivateKey =LngKeyD
       ObjRSA.Modulus=LngKeyN
       decryptstr=ObjRSA.Decode(StrMessage)
   Set ObjRSA = Nothing
end function



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



%>

网友 问天 签名 - 网友社区 请您回个帖。谢谢
PR查询 免费域名 免费空间
顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-11-23 17:22
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP