var keyBytes = new TextEncoder().encode("cd_yt_hl"); TypeError: Failed to execute 'decrypt' on 'SubtleCrypto': parameter 2 is not of type 'CryptoKey'.
时间: 2024-04-13 12:29:08 浏览: 293
ADPCM_ENCODE.rar_adpcm_java adpcm_site:www.pudn.com
根据您提供的代码,似乎您正在尝试使用一个文本字符串作为密钥。然而,在 SubtleCrypto 的 decrypt 方法中,第二个参数需要传递一个有效的 CryptoKey 对象,而不是一个字符串。
要正确地使用 SubtleCrypto 的 decrypt 方法,您需要先生成一个 CryptoKey 对象作为密钥。以下是一个生成对称密钥的示例代码:
```javascript
async function generateKey() {
const key = await window.crypto.subtle.generateKey(
{
name: 'AES-CTR',
length: 256,
},
true,
['encrypt', 'decrypt']
);
return key;
}
const keyPromise = generateKey();
keyPromise.then((key) => {
// 在这里使用生成的 CryptoKey 对象进行解密操作
});
```
请注意,上述代码中使用的是 AES-CTR 算法和 256 位长度的密钥。您可以根据自己的需求选择其他算法和长度。
一旦生成了 CryptoKey 对象,您就可以将其作为 decrypt 方法的第二个参数传递,以正确执行解密操作。
阅读全文