我需要将用户从 Umbraco 转移到另一个 CMS,并且他们的所有密码都经过哈希处理。我想阻止用户重置他们的密码,并希望在新的 CMS 中实现相同的哈希算法。
Umbraco 在其会员提供者中使用什么散列类型?
例如
"W477AMlLwwJQeAGlPZKiEILr8TA=" 是 "test" 的哈希
我不能使用 .net,必须在 javascript 中重新实现这个散列。
更新答案:
//not sure why I can't use cryptojs's utf16LE function
//words = CryptoJS.enc.Utf16LE.parse("test");
//utf16 = CryptoJS.enc.Utf16LE.stringify("test");
function str2rstr_utf16le(input) {
var output = [],
i = 0,
l = input.length;
for (; l > i; ++i) {
output[i] = String.fromCharCode(
input.charCodeAt(i) & 0xFF,
(input.charCodeAt(i) >>> 8) & 0xFF
);
}
return output.join('');
}
var pwd = str2rstr_utf16le("test");
var hash = CryptoJS.HmacSHA1(pwd, pwd);
var encodedPassword = CryptoJS.enc.Base64.stringify(hash);
alert(encodedPassword);