|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。加密|数据|算法 之前搜集的一些材料---利用ASP加密算法加密你的数据(二)
Julain Sitkewich
在第一局部,会商了若何生成密钥,上面将引见若何利用这个密钥来加密息争密一个
字符串。
上面的代码就是可以同时完成这个功效的函数
Crypt.asp文件
<%
Dim g_Key
Const g_CryptThis = "Now is the time for all good men to come to the aid of their country."
Const g_KeyLocation = "c:\key.txt"
g_Key = mid(ReadKeyFromFile(g_KeyLocation),1,Len(g_CryptThis))
Response.Write "<p>ORIGINAL STRING: " & g_CryptThis & "<p>"
Response.Write "<p>KEY VALUE: " & g_Key & "<p>"
Response.Write "<p>ENCRYPTED CYPHERTEXT: " & EnCrypt(g_CryptThis) & "<p>"
Response.Write "<p>DECRYPTED CYPHERTEXT: " & DeCrypt(EnCrypt(g_CryptThis)) & "<p>"
Function EnCrypt(strCryptThis)
Dim strChar, iKeyChar, iStringChar, i
for i = 1 to Len(strCryptThis)
iKeyChar = Asc(mid(g_Key,i,1))
iStringChar = Asc(mid(strCryptThis,i,1))
' *** uncomment below to encrypt with addition,
' iCryptChar = iStringChar + iKeyChar
iCryptChar = iKeyChar Xor iStringChar
strEncrypted = strEncrypted & Chr(iCryptChar)
next
EnCrypt = strEncrypted
End Function
Function DeCrypt(strEncrypted)
Dim strChar, iKeyChar, iStringChar, i
for i = 1 to Len(strEncrypted)
iKeyChar = (Asc(mid(g_Key,i,1)))
iStringChar = Asc(mid(strEncrypted,i,1))
' *** uncomment below to decrypt with subtraction
' iDeCryptChar = iStringChar - iKeyChar
iDeCryptChar = iKeyChar Xor iStringChar
strDecrypted = strDecrypted & Chr(iDeCryptChar)
next
DeCrypt = strDecrypted
End Function
Function ReadKeyFromFile(strFileName)
Dim keyFile, fso, f
set fso = Server.CreateObject("Scripting.FileSystemObject")
set f = fso.GetFile(strFileName)
set ts = f.OpenAsTextStream(1, -2)
Do While not ts.AtEndOfStream
keyFile = keyFile & ts.ReadLine
Loop
ReadKeyFromFile = keyFile
End Function
%>
在Crypt.asp中咱们起首从密钥文件中失掉密钥值,然后从这段密钥中
截取和咱们需求加密的明文一样长度的密钥。然后利用一个复杂的异或操作
将明文和密钥停止运算,那末失掉的了局就是加密后的密文了。进程很复杂的。
因为是利用了异或操作,所以解密将十分复杂,只需利用一样的密钥对密文
再次停止异或操作就可以够解密了。
在下面引见的基本上,你可以少加修改,就能够利用一样的办法加密一个文件。
独一需求注重的是,关于一个二进制文件,你需求做一些完全性反省以包管转换回来
的字符不要越界。
如今你需求做的就是把密钥保留在办事器上的一个平安的中央(不克不及够被内部会见)
附注:
Vernam暗码是由Gilbert Vernam (他是AT&T的工程师)在1918年创造的。
这是一种利用异或办法停止加密解密的办法。
</p> 问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时. |
|