国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

使用ASP加密算法加密你的數(shù)據(jù)(二)

2019-11-18 22:43:32
字體:
供稿:網(wǎng)友
在第一部分,討論了如何生成密鑰,下面將介紹如何使用這個(gè)密鑰來加密和解密一個(gè)
字符串。
下面的代碼就是能夠同時(shí)實(shí)現(xiàn)這個(gè)功能的函數(shù)
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中我們首先從密鑰文件中得到密鑰值,然后從這段密鑰中
截取和我們需要加密的明文同樣長度的密鑰。然后使用一個(gè)簡單的異或操作
將明文和密鑰進(jìn)行運(yùn)算,那么得到的結(jié)果就是加密后的密文了。過程很簡單的。
由于是使用了異或操作,所以解密將非常簡單,只要使用同樣的密鑰對密文
再次進(jìn)行異或操作就能夠解密了。
在上面介紹的基礎(chǔ)上,你可以少加改動,就可以使用同樣的方法加密一個(gè)文件。
唯一需要注意的是,對于一個(gè)二進(jìn)制文件,你需要做一些完整性檢查以保證轉(zhuǎn)換回來
的字符不要越界。
現(xiàn)在你需要做的就是把密鑰保存在服務(wù)器上的一個(gè)安全的地方(不能夠被外部訪問)
附注:
Vernam密碼是由Gilbert Vernam (他是AT&T的工程師)在1918年發(fā)明的。
這是一種使用異或方法進(jìn)行加密解密的方法。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 镇原县| 荃湾区| 轮台县| 贡嘎县| 沂水县| 桂平市| 宁城县| 黄龙县| 仲巴县| 富平县| 白银市| 新沂市| 苏州市| 岳阳市| 封丘县| 商丘市| 濮阳市| 宁乡县| 阿拉善盟| 桃源县| 洪洞县| 前郭尔| 黎平县| 福建省| 新化县| 肇源县| 安陆市| 榆树市| 溧阳市| 石嘴山市| 古蔺县| 休宁县| 万安县| 满城县| 南宁市| 宁安市| 赤壁市| 来宾市| 汕头市| 洱源县| 辉南县|