当我尝试在 Firefox 上使用 Crypto API 时遇到了问题。( doc ) 当我尝试使用此函数加密明文时收到 TypeError :
window.crypto.subtle.encrypt(algo_enc,key,padded_clear_txt);
(文档)
这就是我定义参数的方式:
算法编码:
var iv = new Int32Array(4) ;//4-32 bit integers (128 bits)
window.crypto.getRandomValues(iv); //defining the IV
var algo_enc = {"name": "AES-CBC", iv}
钥匙:
var alg_key = {"name":"AES-CBC","length":128};
var key = window.crypto.subtle.generateKey(alg_key,false,["encrypt","decrypt"]);
padded-clear-txt 是我要加密的 256 位 (2*128) 消息。
这是我执行加密功能时遇到的错误:
SubtleCrypto.encrypt 的参数 2 没有实现接口 CryptoKey。
密钥的生成很顺利,它是一个 CryptoKey 对象,但我仍然收到此错误。所以也许这是一个我应该报告的错误......