日期:2014-05-17  浏览次数:21146 次

求一加密方案
ACCESS数据库,在存储时将信息全部加密后存储进数据库,打开数据库文件看到的是乱码。

但是用页面文件(加解密的东西)又能正常读取。

------解决方案--------------------
找个组件就可以了,比如http://download.paipai.net/texts/midCrypt.htm
纯脚本也可以写,但效率不高。
长密钥加密是耗时操作,加密数据量最好不要太大,大数据一般量用对称加密算法。
------解决方案--------------------
jiami.asp

<%
rem 在ASP中实现加密与解密 //humbass

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= "jiami.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

rem 以下是输出测试 //humbass
dim last,first
first= "sohu &q