【问题标题】:Sha256 with byte[32] using CryptoJS?带有字节 [32] 的 Sha256 使用 CryptoJS?
【发布时间】:2017-06-28 07:40:04
【问题描述】:

当我需要 32 个字节时,我使用 CryptoJS 结果得到一个字节 [8],这段代码正好:

CryptoJS.SHA256(word);

如何获得 32?

【问题讨论】:

    标签: javascript typescript cryptojs


    【解决方案1】:

    这感觉有点令人费解,但我对 CryptoJS 没有太多经验,所以也许有一个需要更少步骤的解决方案:

    const CryptoJS = require('crypto-js');
    
    let hash   = CryptoJS.SHA256('hello world');
    let buffer = Buffer.from(hash.toString(CryptoJS.enc.Hex), 'hex');
    let array  = new Uint8Array(buffer);
    

    如果你需要一个合适的 JS 数组(Array.isArray 返回true),你可以使用这个:

    let array = Array.from( new Uint8Array(buffer) );
    

    【讨论】:

      【解决方案2】:

      解决方案是在我的情况下:

      let utf16le = CryptoJS.enc.Utf16LE.parse(word);
      let utf16Sha256 = CryptoJS.SHA256(utf16le);
      return utf16Sha256.toString(CryptoJS.enc.Hex);
      

      感谢别人的提问

      【讨论】:

      • 但这并不能根据您的要求解决问题。
      【解决方案3】:
      CryptoJS.SHA256(word).toString()
      

      【讨论】:

      • 它给出一个字符串而不是数组
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 1970-01-01
      • 2017-08-19
      相关资源
      最近更新 更多