在 Node.js 中,可以使用内置的 crypto 模块来实现数据加密。以下是一个使用 AES-256-CBC 加密算法进行数据加密和解密的示例:
首先,确保你已经安装了 Node.js。如果没有,请访问 Node.js 官网 下载并安装。
创建一个名为 encryption.js 的新文件。
在 encryption.js 文件中,编写以下代码:
const crypto = require('crypto');
// 加密函数
function encrypt(text, key, iv) {
const cipher = crypto.createCipheriv('aes-256-cbc', key, iv);
const encrypted = Buffer.concat([cipher.update(text), cipher.final()]);
return {
iv: iv.toString('hex'),
content: encrypted.toString('hex')
};
}
// 解密函数
function decrypt(hash, key) {
const decipher = crypto.createDecipheriv('aes-256-cbc', key, Buffer.from(hash.iv, 'hex'));
const decrpyted = Buffer.concat([decipher.update(Buffer.from(hash.content, 'hex')), decipher.final()]);
return decrpyted.toString();
}
module.exports = {
encrypt,
decrypt
};
在同一目录下创建一个名为 app.js 的文件。
在 app.js 文件中,编写以下代码以测试加密和解密功能:
const encryption = require('./encryption');
const text = 'Hello, World!';
const key = crypto.randomBytes(32); // 生成一个 256 位的密钥
const iv = crypto.randomBytes(16); // 生成一个 128 位的初始化向量
const encryptedData = encryption.encrypt(text, key, iv);
console.log('Encrypted data:', encryptedData);
const decryptedData = encryption.decrypt(encryptedData, key);
console.log('Decrypted data:', decryptedData);
app.js 文件:node app.js
你应该会看到加密后的数据和解密后的原始数据。
请注意,这个示例使用了 AES-256-CBC 加密算法,但你可以根据需要选择其他算法。只需将 'aes-256-cbc' 替换为所需的算法名称即可。同时,确保密钥和初始化向量的长度与所选算法相匹配。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。