您的位置:首页精文荟萃软件资讯 → 使用ASP加密算法加密你的数据(二)

使用ASP加密算法加密你的数据(二)

时间:2004/10/7 19:04:00来源:本站整理作者:蓝点我要评论(0)


            
             
              
             
            

               
               

            



            在第一部分,讨论了如何生成密钥,下面将介绍如何使用这个密钥来加密和解密一个
字符串。
下面的代码就是能够同时实现这个功能的函数
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 "

ORIGINAL STRING: " & g_CryptThis & "

"
Response.Write "

KEY VALUE: " & g_Key & "

"
Response.Write "

ENCRYPTED CYPHERTEXT: " & EnCrypt(g_CryptThis) & "

"
Response.Write "

DECRYPTED CYPHERTEXT: " & DeCrypt(EnCrypt(g_CryptThis)) & "

"

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年发明的。
这是一种使用异或方法进行加密解密的方法。

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本