📜  在 Node.js 中加密数据

📅  最后修改于: 2022-05-13 01:56:54.031000             🧑  作者: Mango

在 Node.js 中加密数据

Node中的加密和解密可以通过安装和实现'crypto'库来完成。如果您已经通过手动构建安装了 Node.js,那么加密库可能没有附带它。你可以跑
以下命令安装加密依赖项。

npm install crypto --save

但是,如果您使用预构建的软件包安装了它,则不需要这样做。
在 Node.js 中实现加密的示例。

javascript
// Nodejs encryption with CTR
const crypto = require('crypto');
const algorithm = 'aes-256-cbc';
const key = crypto.randomBytes(32);
const iv = crypto.randomBytes(16);
  
function encrypt(text) {
let cipher = crypto.createCipheriv('aes-256-cbc',Buffer.from(key), iv);
let encrypted = cipher.update(text);
encrypted = Buffer.concat([encrypted, cipher.final()]);
return { iv: iv.toString('hex'), encryptedData: encrypted.toString('hex') };
}
  
function decrypt(text) {
let iv = buffer.from(text.iv, 'hex');
let encryptedText = Buffer.from(text.encryptedData, 'hex');
let decipher = crypto.createDecipheriv('aes-256-cbc', Buffer.from(key), iv);
let decrypted = decipher.update(encryptedText);
decrypted = Buffer.concat([decrypted, decipher.final()]);
return decrypted.toString();
}
  
var gfg = encrypt("GeeksForGeeks");
console.log(gfg);
console.log(decrypt(gfg));


输出