首页主机资讯JS中如何实现数据加密

JS中如何实现数据加密

时间2025-11-18 00:32:05发布访客分类主机资讯浏览547
导读:在JavaScript中,可以使用Web Crypto API来实现数据加密。Web Crypto API提供了多种加密算法,如AES-GCM、RSA-OAEP等。以下是一个使用AES-GCM算法进行数据加密和解密的示例: // 生成密钥...

在JavaScript中,可以使用Web Crypto API来实现数据加密。Web Crypto API提供了多种加密算法,如AES-GCM、RSA-OAEP等。以下是一个使用AES-GCM算法进行数据加密和解密的示例:

// 生成密钥
async function generateKey() {

  const key = await window.crypto.subtle.generateKey(
    {

      name: 'AES-GCM',
      length: 256,
    }
    ,
    true,
    ['encrypt', 'decrypt']
  );
    
  return key;

}


// 加密数据
async function encryptData(data, key) {
    
  const iv = window.crypto.getRandomValues(new Uint8Array(12));

  const encryptedData = await window.crypto.subtle.encrypt(
    {

      name: 'AES-GCM',
      iv,
    }
    ,
    key,
    new TextEncoder().encode(data)
  );

  return {

    encryptedData: new Uint8Array(encryptedData),
    iv: iv,
  }
    ;

}


// 解密数据
async function decryptData(encryptedData, key, iv) {

  const decryptedData = await window.crypto.subtle.decrypt(
    {

      name: 'AES-GCM',
      iv,
    }
    ,
    key,
    encryptedData
  );
    
  return new TextDecoder().decode(decryptedData);

}
    

// 示例
(async () =>
 {
    
  const data = 'Hello, World!';
    
  const key = await generateKey();

  const {
 encryptedData, iv }
     = await encryptData(data, key);
    
  console.log('Encrypted data:', encryptedData);
    
  console.log('IV:', iv);
    

  const decryptedData = await decryptData(encryptedData, key, iv);
    
  console.log('Decrypted data:', decryptedData);

}
    )();
    

在这个示例中,我们首先使用generateKey函数生成一个AES-GCM密钥。然后,我们使用encryptData函数对数据进行加密,该函数返回一个包含加密数据和初始化向量(IV)的对象。最后,我们使用decryptData函数对加密数据进行解密。

请注意,这个示例使用了异步函数(async/await),因为Web Crypto API中的大多数操作都是异步的。在实际应用中,你可能需要根据具体需求对这些函数进行调整。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: JS中如何实现数据加密
本文地址: https://pptw.com/jishu/749544.html
Node.js日志中如何处理跨域请求问题 Node.js日志中如何检测SQL注入

游客 回复需填写必要信息