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));