flash與asp交互通信信息加密的一個方案。
flash與asp交互通信信息加密的一個方案。
2007-10-23 飛飛 自娛自樂 http://www.
眾所同知,flash向服務(wù)器端提交數(shù)據(jù)有兩種方法,一個是get,post這兩中方式和網(wǎng)頁中的表單提交是一樣
的原理。它們的方式就不用多說了,他們都是明文發(fā)布數(shù)據(jù)的。在有些場合我們需要把數(shù)據(jù)進行加加密以后
再提交,比如作一個flash游戲,讓玩家玩了以后提交分數(shù),這個分數(shù)就應(yīng)該是加密碼的,不然我們用一些
監(jiān)控程序很容易得到flash提交的地址:例如:http://www./cc.asp?fs=20&name=飛飛,這
個地址中提交了兩個數(shù)據(jù)一個是分數(shù):fs,一個是玩家的名稱:name,可能讀者要問你那種是用get方法提交
的,用post的就會,其實用post提交能的確是進行了一個編碼,但是很容易可以分解開的:
實例查看地址:http://www./43.html
源文件下載:http://www./down.asp?filename=20071023111334.rar&title=flash與asp交互通信信息加密與asp交互通信信息加密
我在作flash迷宮游戲的時候就考慮到一個用戶作弊的問題,如果玩獲得了flash提交分數(shù)的asp地址,就會
在還玩游戲的情況下任意提交分數(shù)。當(dāng)然這是我們不希望看到的。所以要作一些加密的方式來處理。
本人沒有讀過關(guān)于加密的一些知識,只是本人的一個想法。作了一個功能塊。我想會有其它更好的方式,我
想一些加密方式和解次方案可以從ajax中獲得,我個人認為ajax和flash在與服務(wù)器端語言通信方面是相似
的,ajax的技術(shù)相對flash要成熟許多。ajax本人也正在研究中。
加密原理:
1.生成密碼字典:asp程序?qū)γ總€對應(yīng)加密碼的字符(strZD="3,4,5,6,7,8,9,0,1,2,." 要加密的字符用逗
號隔開。)進行md5加密,并從中截取一部為作為該字符對應(yīng)的加密字符。并生成密碼字典
2.生成加密信息:flash通過這個密碼字典來加密字符,并把所獲得字符復(fù)制一份,用特定的規(guī)則把兩分相
同的數(shù)據(jù)混淆在一起,成生最終的加密信息。
3.服務(wù)器端解密:asp獲得加密信息,把他們分開兩分,先驗證加密信息的完整性,然后解密。
缺點:
密碼字典存于flash中,如果破解獲得flash源代碼,就可以獲得密碼字典,所以swf文件要用加密軟件加密,
保護flash源代碼是關(guān)健。
一些說明:
所驗證加密信息部分:目前只是簡單的把"加密字符"追加了一份,asp獲得提交的"加密字符",對分來比較
加密信息的完整性.使用者可自行修改:加密信息的完整性
它們分別在:
asp:mi.asp:function GetKey(getZdStr,forMidLen,strRequest)
flash:加密.fla:getKey(strA:String):String中的:return (strRen+strRen);
測試與安裝說明:
1>在iis加一個虛擬目錄:例如:md5
2>打開"加密.fla"找到:
my_lv.sendAndLoad("http://localhost/md5/test.asp", result_lv, "POST");
把:http://localhost/md5/test.asp,替換test.asp所在虛擬路經(jīng)
使用說明
注:以下安裝目錄http://localhost/md5/
1>加密設(shè)置參數(shù)
打開:const.asp修改以下信息
strZD="3,4,5,6,7,8,9,0,1,2,."
要加密的字符用逗號隔開。
forMidStar=1
每個用md5加密得到值截取的開始位置
forMidLen=13
每個用md5加密得到值截取的長度
2>獲得密碼字典
運行:http://localhost/md5/getZD.asp
獲得密碼字典
3>修改flash加密函數(shù)
打開"加密.fla"
找到:function getOneKey(strA:String):String
修改:var strKey:String ="獲得密碼字典"
4>要加密的數(shù)字調(diào)用
getOneKey(String(要加密的數(shù)字))
就可以獲得,
5>服務(wù)器解密
my_lv.sendAndLoad("http://localhost/md5/test.asp", result_lv, "POST");
把:http://localhost/md5/test.asp,替換test.asp所在虛擬路經(jīng)
文件說明==============
md5.asp
md5加密函數(shù)
mi.asp
要用的生成密碼字典及asp解密函數(shù)
const.asp
加密設(shè)置參數(shù)
getZD.asp
獲得密碼字典
test.asp和加密.fla
|