我想使用JavaScript md5-哈希字符串。我必须将结果与ldap-md5哈希字符串(密码)进行比较。但是结果却不同:对于字符串“ test”,javascript md5是
098f6bcd4621d373cade4e832627b4f6
另一方面,LDAP已保存
CY9rzUYh03PK3k6DJie09g ==
作为密码字符串。
通过执行此操作,也可以使用PHP生成LDAP-md5
base64_encode(md5(“ test”,true));
我正在从这篇文章中使用以下javascript哈希函数:How to generate MD5 file hash on javascript?
var MD5 = function(d){结果= M(V(Y(X(d(d),8 * d.length))));返回result.toLowerCase()};函数M(d){for(var ,m =“ 0123456789ABCDEF”,f =“”,r = 0; r >> 4&15)+ m.charAt(15&);返回f}函数X(d){for(var = Array(d.length >> 2),m = 0; m << / em> .length; m ++) [m] = 0; for(m = 0; m <8 * d.length; m + = 8) [m >> 5] | =(255&d.charCodeAt(m / 8))<=“”,m = 0; m <32 * d.length; m + = 8)+ = String .fromCharCode(d [m >> 5] >>> m%32&255);返回}函数Y(d,){d [>> 5] | = 128 <<< / em>%32,d [14 +( +64 >>> 9 << 4)] = ;对于(var m = 1732584193,f = -271733879,r = -1732584194,i = 271733878 ,n = 0; n> 16)+(_ >> 16)+(m >> 16)<< 16 | 65535&m}函数bit_rol(d,){返回d <<< / em> | d> >> 32 -_}
我该如何在JavaScript中计算出完全相同的md5哈希,使其与LDAP(以及PHP)中的md5哈希匹配?
答案 0 :(得分:1)
我最终复制了以下javascript md5库:https://github.com/emn178/js-md5/blob/master/src/md5.js
在这里,我可以生成与LDAP等价的md5哈希,就像这样简单:
md5.base64(“ test”);