一段在asp中加密與解密對應(yīng)的函數(shù)
更新時(shí)間:2007年03月05日 00:00:00 作者:
在ASP中加密方法有對應(yīng)的解密方法好象不多,現(xiàn)在根據(jù)前輩資料整理出在asp中加密與解密函數(shù)
rsa.asp
<%
rem 在ASP中實(shí)現(xiàn)加密與解密,加密方法:根據(jù)RSA
rem 聯(lián)系: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 & 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 & Chr(lBytAscii)
Next
End Function
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
End Function
Private Function HexToNumber(ByRef pStrHex)
HexToNumber = CLng("&h" & 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 "加密前為:"&first
last=Encryptstr(first)
Response.Write "加密后為"&last
Response.Write "解密后為" &decryptstr(last)
%>
rsa.asp
<%
rem 在ASP中實(shí)現(xiàn)加密與解密,加密方法:根據(jù)RSA
rem 聯(lián)系: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 & 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 & Chr(lBytAscii)
Next
End Function
Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
NumberToHex = Right(String(pLngLength, "0") & Hex(pLngNumber), pLngLength)
End Function
Private Function HexToNumber(ByRef pStrHex)
HexToNumber = CLng("&h" & 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 "加密前為:"&first
last=Encryptstr(first)
Response.Write "加密后為"&last
Response.Write "解密后為" &decryptstr(last)
%>
相關(guān)文章
asp 根據(jù)IP地址自動(dòng)判斷轉(zhuǎn)向分站的代碼
根據(jù)IP地址自動(dòng)判斷轉(zhuǎn)向分站的代碼 這個(gè)是一個(gè)不錯(cuò)的解決之道,可以緩解服務(wù)器壓力過大等一些問題2008-11-11ASP+JS三級聯(lián)動(dòng)下拉菜單[調(diào)用數(shù)據(jù)庫數(shù)據(jù)]
ASP+JS三級聯(lián)動(dòng)下拉菜單[調(diào)用數(shù)據(jù)庫數(shù)據(jù)]...2007-03-03ASP基礎(chǔ)入門第八篇(ASP內(nèi)建對象Application和Session)
這篇文章主要介紹了ASP內(nèi)建對象Application和Session的相關(guān)資料,需要的朋友可以參考下2015-10-10ASP代碼實(shí)現(xiàn)自動(dòng)清除替換ACCESS(MDB)數(shù)據(jù)庫的日文字符的
我們都知道ACCESS是ASP的親密伙伴。因?yàn)閮煞N最簡單的東西碰在一起總能迸發(fā)出火花。 然而,當(dāng)我們過濾不嚴(yán)格的時(shí)候經(jīng)常出現(xiàn)日文字符,這個(gè)時(shí)候搜索之后就會出現(xiàn)日文溢出。2008-06-06如何在ASP頁面動(dòng)態(tài)Inclue文件?
如何在ASP頁面動(dòng)態(tài)Inclue文件?...2006-12-12ASP Crazy 模版操作類(最簡單的模板類、僅提供交流)
ASP Crazy 模版操作類 最簡單的模板類需要的朋友可以參考下。2009-10-10