📅  最后修改于: 2023-12-03 15:11:51.649000             🧑  作者: Mango
在进行加密和解密操作时,需要使用密钥来加密和解密数据。在JavaScript中,我们可以通过不同的方法获取密钥对象。以下是一些常见的方法:
CryptoAPI是一个用于加密和解密的API,可用于生成密钥。以下是使用CryptoAPI生成AES-128密钥的示例代码:
async function generateKey() {
const key = await window.crypto.subtle.generateKey(
{
name: 'AES-CBC',
length: 128,
},
true,
['encrypt', 'decrypt']
);
return key;
}
const key = await generateKey();
console.log(key);
除了使用CryptoAPI,我们还可以使用第三方库如CryptoJS、Forge等来获取密钥对象。以下是使用CryptoJS生成AES-128密钥的示例代码:
const key = CryptoJS.enc.Utf8.parse('this is a secret key');
console.log(key);
如果已经有了密钥,我们也可以将其导入为一个密钥对象。以下是使用CryptoAPI导入一个预共享密钥的示例代码:
async function importKey() {
const key = await window.crypto.subtle.importKey(
'raw',
new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]),
{
name: 'HMAC',
hash: { name: 'SHA-256' },
},
false,
['sign', 'verify']
);
return key;
}
const key = await importKey();
console.log(key);
以上就是获取密钥对象的几种常见方式,需要根据实际情况选择合适的方法。