2017-07-24 50 views
-1

以下是如何在後端使用.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庫或其相關部分。 –

回答

0

我忘了加入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;