做程序員,是一種職業(yè),更是一種興趣和愛(ài)好,許多朋友相信都有獨(dú)自解決問(wèn)題時(shí)的那種成就感,如果那問(wèn)題,是百度不到,或者無(wú)任何范例參考而解決的,那享受到的可謂是幸福了。
如果你未感受以上說(shuō)的那種成功,那只能說(shuō)是你還未積累足夠的基礎(chǔ)。因?yàn)橐孔约耗芰θソ鉀Q問(wèn)題,而無(wú)任何指導(dǎo),那基礎(chǔ)知識(shí)是非常重要。
像BASE64、UNICODE、UTF8、GB2312概念等,我相信沒(méi)一個(gè)程序員會(huì)不知道。但以下的經(jīng)歷,相信連百度、GOOGLE都不會(huì)搜得到任何幫助,完全就是靠這些基本理論來(lái)解決一個(gè)看似“簡(jiǎn)單”的問(wèn)題。
我的網(wǎng)站 www.08178.com里,在導(dǎo)航欄上有個(gè) "足球比分直播" 的板塊,里面是動(dòng)態(tài)的實(shí)時(shí)比分直播,里面的數(shù)據(jù)來(lái)源于國(guó)外的網(wǎng)站。上個(gè)月該網(wǎng)站改版了,需要登錄才可以訪問(wèn),且還需要個(gè)類似KEY的東東,其實(shí)就一段字符 串,字符串由一大堆用戶信息之類的,需要進(jìn)行破解,方可以訪問(wèn)到信息。如下就是通過(guò)反編譯得出的加密核心函數(shù)。本以為按語(yǔ)法翻譯一下,就可以解密,但足足 花了我一天的時(shí)間,搞得焦頭爛額,最后還是基礎(chǔ)的積累,讓我跨過(guò)了這道難關(guān)。
破解算法時(shí),使用到了UTF8和UNICODE的基礎(chǔ)知識(shí),在最容易讓人忽略的字節(jié)大小問(wèn)題上,栽了跟頭,看似簡(jiǎn)單的問(wèn)題,其實(shí)在做語(yǔ)言搬遷時(shí),最容易讓人無(wú)從捉摸,網(wǎng)上也查不到什么有價(jià)值的幫助信息。附上加密函數(shù),給有興趣的朋友看看。
總之,重視讓你覺(jué)得簡(jiǎn)單的知識(shí),你不會(huì)吃虧的,朋友!
private static function encode(*:String, *:int):String{
var _local3:Base64Encoder = new Base64Encoder();
_local3.encode(xor(*, *));
return (_local3.flush());
}
private static function xor(*:String, *:int):String{
var _local3:String = KEY10.toString();
var _local4:String = new String();
var _local5:Number = 0;
while (_local5 < *.length) {
_local4 = (_local4 + String.fromCharCode((*.charCodeAt(_local5) ^ _local3.toString().charCodeAt(((_local5 + *) % _local3.toString().length)))));
_local5++;
};
return (_local4);
}