📅  最后修改于: 2023-12-03 15:24:18.079000             🧑  作者: Mango
在 Node.js 中,我们可以使用官方提供的 crypto
模块来进行各种加密操作。本文将介绍如何在 Node.js 中使用 crypto
模块进行加密。
使用 crypto.createHash()
方法可以生成哈希值。
const crypto = require('crypto');
const hash = crypto.createHash('sha256');
hash.update('hello world');
console.log(hash.digest('hex'));
以上代码将输出 f2ca4f4e4d0fa4f7206440ebf3b1d1f5b8b5b4633b5e85919dafe16df83fda40
,即 hello world
的 SHA256 哈希值。
使用 crypto.createHmac()
方法可以生成 Hmac 值。
const crypto = require('crypto');
const hmac = crypto.createHmac('sha256', 'secret-key');
hmac.update('hello world');
console.log(hmac.digest('hex'));
以上代码将输出 9155a191036af313c729bcec5a93157814e0668ecb5a710d7a6336e7731f7fe3
,即 hello world
的 HMAC-SHA256 值。
使用 crypto.createCipher()
和 crypto.createDecipher()
方法可以进行加密和解密操作。
const crypto = require('crypto');
const algorithm = 'aes-192-cbc';
const key = crypto.scryptSync('password', 'salt', 24);
const iv = Buffer.alloc(16, 0);
const cipher = crypto.createCipheriv(algorithm, key, iv);
let encrypted = cipher.update('hello world', 'utf8', 'hex');
encrypted += cipher.final('hex');
console.log(encrypted);
const decipher = crypto.createDecipheriv(algorithm, key, iv);
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
decrypted += decipher.final('utf8');
console.log(decrypted);
以上代码将输出:
5c2a974dac6325317eceeef9a5c7cd5d
hello world
即将 hello world
使用 aes-192-cbc
算法加密后得到的密文,以及将密文解密后得到的明文。
本文介绍了如何在 Node.js 中使用 crypto
模块进行加密操作。需要注意的是,在实际应用中,我们应该使用更加安全的加密算法和更复杂的密钥管理方式来保证信息的安全性。