我正在尝试使用以下方法加密一些文本window.crypto
:
await crypto.subtle.encrypt(algorithm, key, dataArrayBuffer).catch(error => console.error(error));
但是我得到这个错误AES key data must be 128 or 256 bits
。我正在使用 PBKDF2 从密码创建一个 256 位密钥,我指定的密钥长度为256
:
window.crypto.subtle.deriveKey(
{
"name": "PBKDF2",
"salt": salt,
"iterations": iterations,
"hash": hash
},
baseKey,
{"name": "AES-GCM", "length": 256}, //<------------
true,
["encrypt", "decrypt"]
);
edi5Fou4yCdSdx3DX3Org+L2XFAsVdomVgpVqUGjJ1g=
但是我最终得到了这个密钥exportKey
,并将它从一个转换ArrayBuffer
为一个字节和位string
的长度......44
352
这可以解释错误,但我怎样才能从's创建一个实际的256
位密钥?window.crypto
PBKDF2
JSFiddle:https ://jsfiddle.net/6Lyaoudc/1/