2020人工智能语义识别创新排行
全世界各行各业联合起来,internet一定要实现!
老文章正文

用ASP加密算法“保护”你的数据

2004-03-27 eNet&Ciweek

  在第一部分,讨论了如何生成密钥,下面将介绍如何使用这个密钥来加密和解密一个字符串。

  下面的代码就是能够同时实现这个功能的函数

  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中我们首先从密钥文件中得到密钥值,然后从这段密钥中截取和我们需要加密的明文同样长度的密钥。然后使用一个简单的异或操作将明文和密钥进行运算,那么得到的结果就是加密后的密文了。过程很简单的。由于是使用了异或操作,所以解密将非常简单,只要使用同样的密钥对密文再次进行异或操作就能够解密了。在上面介绍的基础上,你可以少加改动,就可以使用同样的方法加密一个文件。唯一需要注意的是,对于一个二进制文件,你需要做一些完整性检查以保证转换回来的字符不要越界。现在你需要做的就是把密钥保存在服务器上的一个安全的地方(不能够被外部访问).

相关频道: eNews 老文章

您对本文或本站有任何意见,请在下方提交,谢谢!

投稿信箱:tougao@enet16.com
广告