【发布时间】:2012-08-10 18:23:07
【问题描述】:
我在 site auth 上有 Javascript md5。
我只需要实现这个功能:
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
我需要以下方法的帮助:
将 little-endian 单词数组转换为十六进制字符串:
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;
}
将字符串转换为 little-endian 单词数组 如果 chrsz 是 ASCII,则 >255 的字符会被忽略其高字节。
function str2binl(str)
{
var bin = 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;
}
【问题讨论】:
-
我删除了
Java标签,因为它似乎无关紧要...... -
为什么? javascript方法需要java实现,懂java的人才能正确回答!
-
那么您尝试过的 Java 代码在哪里?我知道这有点棘手,但实际上很多东西都转过来了!重新标记java,因为家是荒谬的。显然,Romek 正在寻找 javascript 函数的 Java 实现,可能是用于 Web 应用程序等。
-
因为我不知道 javacript,我无法在 Java 中实现同样的功能
标签: java javascript md5