今天我有提過md5.ASP因為設計上的缺陷,在對雙字節字符(比方說中文)進行加密的時候會和標准的md5算法(.Net /IndyHashMessageDigest5 / md5.pas,這三者計算結果相同,同為以字節為單位計算岀的結果)結果有出入。
其原因在於md5.ASP使用mid函數,取出的是“字符”,而正確的做法應該是取出字節,可是論壇數據庫(比方說dvbbs7)中的數據已經是md5.asp的加密結果,所以我們只能將錯就錯,為我們的程序重寫一個和md5.ASP一樣的加密過程
>>>> 被廣泛使用的MD5.ASP中似乎存在缺陷
我今天總算是用Delphi寫出來了
雖然不知道asc函數得到的結果是否正確代碼——我的目標是和md5.ASP結果一樣,現在缺的不就是這個有缺陷的程序嗎?
unit AMD5;
interface
////////////////////////////////////////////
// 文件名 : AMD5.pas //
// 功能 : 與md5.ASP計算結果相同 //
// 作者 : 由ScriptBaby改編自md5.ASP //
// 完成