?? asp加密算法.htm
字號:
}
else
document.write("<FONT COLOR=\"white\">"+y.getYear()+"年" + mName[y.getMonth()] + y.getDate() + "日" + dName[y.getDay()] + "" + "</FONT>");
}
else
{
document.write("<FONT COLOR=\"white\">"+y.getFullYear() +"年"+ mName[y.getMonth()] + y.getDate() + "日" + dName[y.getDay()] + "</FONT>");
}
// -->
</SCRIPT>
</font> </div>
</td>
</tr>
</table>
<div align="center"><br>
<br>
</div>
<table width="611" border="0" align="center" cellpadding="0" cellspacing="0" height="100">
<tr bgcolor="#000099">
<td width=611 height=41 align=center>
<p><font size="3" color="#FFFFFF">使用ASP加密算法加密你的數據(一) </font></p>
<p><font color="#FFFFFF">銀河工作組整理 </font> </p>
</td>
</tr>
<tr bgcolor="#99CCFF">
<td width=611 height=55 align=center>
<p>
<p align="left">在第一部分,討論了如何生成密鑰,下面將介紹如何使用這個密鑰來加密和解密一個字符串。<br>
下面的代碼就是能夠同時實現這個功能的函數Crypt.asp文件<br>
<br>
<% <br>
Dim g_Key<br>
<br>
Const g_CryptThis = "Now is the time for all good men to come to
the aid of their country."<br>
Const g_KeyLocation = "c:\key.txt"<br>
<br>
g_Key = mid(ReadKeyFromFile(g_KeyLocation),1,Len(g_CryptThis))<br>
<br>
Response.Write "<p>ORIGINAL STRING: " & g_CryptThis
& "<p>"<br>
Response.Write "<p>KEY VALUE: " & g_Key & "<p>"<br>
Response.Write "<p>ENCRYPTED CYPHERTEXT: " & EnCrypt(g_CryptThis)
& "<p>"<br>
Response.Write "<p>DECRYPTED CYPHERTEXT: " & DeCrypt(EnCrypt(g_CryptThis))
& "<p>"<br>
<br>
Function EnCrypt(strCryptThis)<br>
Dim strChar, iKeyChar, iStringChar, I<br>
for I = 1 to Len(strCryptThis)<br>
iKeyChar = Asc(mid(g_Key,I,1))<br>
iStringChar = Asc(mid(strCryptThis,I,1))<br>
' *** uncomment below to encrypt with addition,<br>
' iCryptChar = iStringChar + iKeyChar<br>
iCryptChar = iKeyChar Xor iStringChar<br>
strEncrypted = strEncrypted & Chr(iCryptChar)<br>
next<br>
EnCrypt = strEncrypted<br>
End Function<br>
<br>
Function DeCrypt(strEncrypted)<br>
Dim strChar, iKeyChar, iStringChar, I<br>
for I = 1 to Len(strEncrypted)<br>
iKeyChar = (Asc(mid(g_Key,I,1)))<br>
iStringChar = Asc(mid(strEncrypted,I,1))<br>
' *** uncomment below to decrypt with subtraction <br>
' iDeCryptChar = iStringChar - iKeyChar <br>
iDeCryptChar = iKeyChar Xor iStringChar<br>
strDecrypted = strDecrypted & Chr(iDeCryptChar)<br>
next<br>
DeCrypt = strDecrypted<br>
End Function<br>
<br>
Function ReadKeyFromFile(strFileName)<br>
Dim keyFile, fso, f<br>
set fso = Server.CreateObject("Scripting.FileSystemObject")
<br>
set f = fso.GetFile(strFileName) <br>
set ts = f.OpenAsTextStream(1, -2)<br>
<br>
Do While not ts.AtEndOfStream<br>
keyFile = keyFile & ts.ReadLine<br>
Loop <br>
<br>
ReadKeyFromFile = keyFile<br>
End Function<br>
<br>
%> <br>
<br>
在Crypt.asp中我們首先從密鑰文件中得到密鑰值,然后從這段密鑰中截取和我們需要加密的明文同樣長度的密鑰。然后使用一個簡單的異或操作將明文和密鑰進行運算,那么得到的結果就是加密后的密文了。過程很簡單的。由于是使用了異或操作,所以解密將非常簡單,只要使用同樣的密鑰對密文再次進行異或操作就能夠解密了。<br>
在上面介紹的基礎上,你可以少加改動,就可以使用同樣的方法加密一個文件。唯一需要注意的是,對于一個二進制文件,你需要做一些完整性檢查以保證轉換回來的字符不要越界。<br>
現在你需要做的就是把密鑰保存在服務器上的一個安全的地方(不能夠被外部訪問)<br>
<br>
附注:<br>
Vernam密碼是由Gilbert Vernam (他是AT&T的工程師)在1918年發明的。這是一種使用異或方法進行加密解密的方法。 </p>
<p align="center"> </p>
<p> </p>
</td>
</tr>
</table>
<table width="719" border="0" align="center" cellpadding="0" cellspacing="0" height="100">
<tr>
<td width=719 height=110 align=center>
<table width="100%" border="0">
<tr>
<td>
<table width="100%" border="0">
<tr>
<td>
<hr>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="51">
<div align="center">
<p>版權所有© 2000-2001 銀河空間工作組保留所有權利</p>
<p>本站由銀河工作組維護 </p>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p align="center"> </p>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -