用于.Net代码的Javascript sha1 + HMCASHA1 Crypto JS加密

用于.Net代码的Javascript sha1 + HMCASHA1 Crypto JS加密

问题描述:

以下是如何在后端使用.Net上进行加密。用于.Net代码的Javascript sha1 + HMCASHA1 Crypto JS加密

public static string ShaEncrypt(string input,string keyStr) { 

      byte[] key = Encoding.ASCII.GetBytes(keyStr); 
      HMACSHA1 myhmacsha1 = new HMACSHA1(key); 
      byte[] byteArray = Encoding.ASCII.GetBytes(input); 
      MemoryStream stream = new MemoryStream(byteArray); 
      return myhmacsha1.ComputeHash(stream).Aggregate("", (s, e) => s + String.Format("{0:x2}", e), s => s); 
} 

为了同样我需要在前端Javascript中做到这一点。 我已经尝试通过使用sha1使用谷歌代码加密。

var hash = CryptoJS.SHA1(keyString); var test = CryptoJS.enc.Base64.Stringify(hash);

但我没有定义CryptoJS.enc。请帮帮我。

+1

请发布一个最小化,完整和可验证的示例。 – gobes

+0

'CryptoJS.enc'不太可能是未定义的。您可能忘记包含CryptoJS库或其相关部分。 –

我忘了加入core-min.js,enc-base64-min.js

下面是用于转换散列值的Javascript代码。

var key = CryptoJS.enc.Utf8.parse(apiSecret);          
var prehash = CryptoJS.enc.Utf8.parse(apiKey);          
var hash = CryptoJS.HmacSHA1(prehash, key); 
return hash;