代码之家  ›  专栏  ›  技术社区  ›  Ronnie Smith

aes256包装错误'ERR_CRYPTO_INVALID_IV'但AES-KW不需要初始化矢量?

  •  0
  • Ronnie Smith  · 技术社区  · 2 年前

    MDN mentions 即:

    AES-KW不需要初始化矢量(iv)

    但是当我尝试使用下面的密钥加密密钥(KEK)加密我的内容加密密钥(CEK)时,Node.js Crypto createCipheriv(algorithm, key, iv[, options]) 引发错误 ERR_CRYPTO_INVALID_IV .有人知道AES-KW是否需要 iv ?这个 Advanced Encryption Standard (AES) Key Wrap Algorithm RFC根本没有提到“初始化向量”。

    let cipherCEK = createCipheriv('aes256-wrap', keyEncryptionKey, null);
    let encryptedCEK = cipher.update(contentEncryptionKey);
    encryptedCEK += cipher.final(); //buffer
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   Rob Napier    2 年前

    我不知道你为什么说RFC 3394没有提到IV。它在第2.2.3节中有介绍,用于数据完整性(即确保密钥被正确解密)。建议的默认值为A6A6A6A6A6。我还没有测试过 createCipheriv ,但我建议传递此值。

    我希望MDN说它不“需要”IV,因为有一个默认的IV是微软自动使用的,所以你不需要通过它。我希望Node.js对开发者不太友好。

    推荐文章