Flash AS2将字符串强制转换为数字?

新建一个名为 MD5.as 的文件,然后把下面的代码复制粘贴进去,保存。

/**

*?MD5?Class?v1.0

*?Author?:?Mika?Palmu

*?Licence?:?Use?freely,?giving?credit?when?you?can.

*?Website?:?t)

{

return?(num?<<?cnt)?|?(num?>>>?(32?-?cnt));

}

private?static?function?str2binl(str)

{

var?bin?=?new?Array();

var?mask?=?(1?<<?chrsz)?-?1;

for?(var?i?=?0;?i?<?str.length?*?chrsz;?i?+=?chrsz)

{

bin[i?>>?5]?|=?(str.charCodeAt(i?/?chrsz)?&?mask)?<<?(i?%?32);

}

return?bin;

}

private?static?function?binl2str(bin)

{

var?str?=?"";

var?mask?=?(1?<<?chrsz)?-?1;

for?(var?i?=?0;?i?<?bin.length?*?32;?i?+=?chrsz)

{

str?+=?String.fromCharCode((bin[i?>>?5]?>>>?(i?%?32))?&?mask);

}

return?str;

}

private?static?function?binl2hex(binarray)

{

var?hex_tab?=?hexcase"0123456789ABCDEF"?:?"0123456789abcdef";

var?str?=?"";

for?(var?i?=?0;?i?<?binarray.length?*?4;?i++)

{

str?+=?hex_tab.charAt((binarray[i?>>?2]?>>?((i?%?4)?*?8?+?4))?&?0xF)?+?hex_tab.charAt((binarray[i?>>?2]?>>?((i?%?4)?*?8))?&?0xF);

}

return?str;

}

private?static?function?binl2b64(binarray)

{

var?tab?=?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

var?str?=?"";

for?(var?i?=?0;?i?<?binarray.length?*?4;?i?+=?3)

{

var?triplet?=?(((binarray[i?>>?2]?>>?8?*?(i?%?4))?&?0xFF)?<<?16)?|?(((binarray[i?+?1?>>?2]?>>?8?*?((i?+?1)?%?4))?&?0xFF)?<<?8)?|?((binarray[i?+?2?>>?2]?>>?8?*?((i?+?2)?%?4))?&?0xFF);

for?(var?j?=?0;?j?<?4;?j++)

{

if?(i?*?8?+?j?*?6?>?binarray.length?*?32)

{

str?+=?b64pad;

}

else

{

str?+=?tab.charAt((triplet?>>?6?*?(3?-?j))?&?0x3F);

}

}

}

return?str;

}

}

然后使用的时候这样写:

//导入MD5类

import?MD5;

//输出小写:

trace(MD5.hash("测试"));

//输出大写:

trace(MD5.hash("测试",true));