我試圖從.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