|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
在第一部分,讨论了如何生成密钥,下面将介绍如何使用这个密钥来加密和解密一个字符串。 下面的代码就是能够同时实现这个功能的函数 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年发明的。这是一种使用异或方式进行加密解密的方式。 返回类别: 教程 上一教程: ASP获取客户端MAC地址(源代码) 下一教程: 用GetString来提高ASP的速度 您可以阅读与"使用ASP加密算法加密你的数据(二)"相关的教程: · 使用ASP加密算法加密你的数据(一) · 使用ASP加密算法加密你的数据(一) · 使用ASP加密算法加密你的数据(二) · 使用ASP加密算法加密你的数据 · ASP程序中使用断开的数据记录集 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |