我试图从.net成员资源提供程序在javascript函数中重现相同的hmacsha1哈希和base64编码。我试过使用加密-js并得到不同的结果。在.NET代码会出现乱码“测试”到“W477AMlLwwJQeAGlPZKiEILr8TA =”如何在javascript中重新创建.net成员hmacsha1哈希
这里的.NET代码
string password = "test";
HMACSHA1 hash = new HMACSHA1();
hash.Key = Encoding.Unicode.GetBytes(password);
string encodedPassword = Convert.ToBase64String(hash.ComputeHash(Encoding.Unicode.GetBytes(password)));
而这里的JavaScript方法我用加密的js尝试,不会产生相同的输出
var hash = CryptoJS.HmacSHA1("test", "");
var encodedPassword = CryptoJS.enc.Base64.stringify(hash);
如何让我的JavaScript哈希匹配从.net生成的哈希。
他用'password'作为重点和消息。由于不同的编码('ASCII'而不是'Unicode'),你的解决方案只会给出正确的结果 - 这是真正的问题。 – Andreas
你说得对。我不知何故完全错过了他如何确定关键(错误地)。 –
.net方法是Umbraco中的现有函数,我无法修改,所以很不幸,我无法更改它。我只能尝试在JavaScript中复制它。 – MonkeyBonkey