1. 哈希算法:
使用哈希算法可以将任意长度的数据映射为固定长度的哈希值。常见的哈希算法包括 MD5、SHA-256 等。
const crypto = require('crypto');
const data = 'Hello, World!';
// 使用 MD5 哈希算法
const md5Hash = crypto.createHash('md5').update(data).digest('hex');
console.log('MD5 Hash:', md5Hash);
// 使用 SHA-256 哈希算法
const sha256Hash = crypto.createHash('sha256').update(data).digest('hex');
console.log('SHA-256 Hash:', sha256Hash);
2. Hmac(Hash-based Message Authentication Code):
HMAC 结合了哈希算法和密钥,用于验证数据的完整性和身份。
const crypto = require('crypto');
const data = 'Hello, World!';
const secretKey = 'mySecretKey';
const hmac = crypto.createHmac('sha256', secretKey).update(data).digest('hex');
console.log('HMAC:', hmac);
3. 加密和解密:
使用对称加密算法(如 AES)进行加密和解密:
const crypto = require('crypto');
const algorithm = 'aes-256-cbc';
const password = 'myPassword';
const textToEncrypt = 'Hello, World!';
// 生成随机初始化向量
const iv = crypto.randomBytes(16);
// 创建加密器
const cipher = crypto.createCipheriv(algorithm, Buffer.from(password), iv);
// 加密文本
let encryptedText = cipher.update(textToEncrypt, 'utf-8', 'hex');
encryptedText += cipher.final('hex');
console.log('Encrypted Text:', encryptedText);
// 创建解密器
const decipher = crypto.createDecipheriv(algorithm, Buffer.from(password), iv);
// 解密文本
let decryptedText = decipher.update(encryptedText, 'hex', 'utf-8');
decryptedText += decipher.final('utf-8');
console.log('Decrypted Text:', decryptedText);
这些只是一些基本的加密和哈希示例。在实际应用中,请根据需求选择适当的算法,并妥善管理密钥和初始化向量。安全性是加密应用中需要特别关注的重要方面。
转载请注明出处:http://www.zyzy.cn/article/detail/4772/Node.js