📜  获取密钥对象 javascript (1)

📅  最后修改于: 2023-12-03 15:11:51.649000             🧑  作者: Mango

获取密钥对象 JavaScript

在进行加密和解密操作时,需要使用密钥来加密和解密数据。在JavaScript中,我们可以通过不同的方法获取密钥对象。以下是一些常见的方法:

1. 使用CryptoAPI

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);
2. 使用第三方库

除了使用CryptoAPI,我们还可以使用第三方库如CryptoJS、Forge等来获取密钥对象。以下是使用CryptoJS生成AES-128密钥的示例代码:

const key = CryptoJS.enc.Utf8.parse('this is a secret key');
console.log(key);
3. 导入密钥

如果已经有了密钥,我们也可以将其导入为一个密钥对象。以下是使用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);

以上就是获取密钥对象的几种常见方式,需要根据实际情况选择合适的方法。