generateKey
generateKey()
生成一个新的加密密钥,并将其作为 CryptoKey 对象或 CryptoKeyPair 对象返回,可与 Web Crypto API 一起使用。
使用方法
generateKey(algorithm, extractable, keyUsages)
参数
名称 | 类型 | 描述 |
---|---|---|
algorithm | 一个 string 或带有单个 name 字符串的算法对象 | 要生成的密钥类型。它可以是一个字符串,其值是当前支持的任何算法,也可以是生成密钥参数对象中的任何一个。 |
extractable | boolean | 密钥是否可以使用 exportKey 导出。 |
keyUsages | Array<string> | 一个字符串数组,描述密钥可以执行的操作。密钥用法可能因算法而异。 |
支持的算法
AES-CBC | AES-CTR | AES-GCM | AES-KW | ECDH | ECDSA | HMAC | RSA-OAEP | RSASSA-PKCS1-v1_5 | RSA-PSS |
---|---|---|---|---|---|---|---|---|---|
✅ AesCbcParams | ✅ AesCtrParams | ✅ AesGcmParams | ❌ | ✅ EcdhKeyDeriveParams | ✅ EcdsaParams | ✅ HmacKeyGenParams | ✅ RsaHashedImportParams | ✅ RsaHashedImportParams | ✅ RsaHashedImportParams |
返回值
一个 Promise
,它以生成的密钥作为 CryptoKey 对象或 CryptoKeyPair 对象解析。
算法特定输入
HMAC | AES | ECDH | ECDSA | RSA-OAEP | RSASSA-PKCS1-v1_5 | RSA-PSS | |
---|---|---|---|---|---|---|---|
要使用的参数类型 | HmacKeyGenParams | AesKeyGenParams | EcKeyGenParams | EcKeyGenParams | RSAHashedKeyGenParams | RSAHashedKeyGenParams | RSAHashedKeyGenParams |
可能的密钥用法 | sign , verify | encrypt , decrypt | deriveKey , deriveBits | sign , verify | encrypt , decrypt | sign , verify | sign , verify |
抛出
类型 | 描述 |
---|---|
SyntaxError | 当 keyUsages 参数为空,但密钥类型为 secret 或 private 时抛出。 |
示例
export default async function () {
const key = await crypto.subtle.generateKey(
{
name: 'AES-CBC',
length: 256,
},
true,
['encrypt', 'decrypt']
);
console.log(JSON.stringify(key));
}