node 实现aes-128-cbc对称加密

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: node 实现aes-128-cbc对称加密

刚刚接触node的crypto模块,发现水好深好深。下面是使用node中的 crypto 的aes-128-cbc进行对称加密,


// 用于加密和解密
// 手动实现对称加密, 使用node 的 crypto库,并且使用里面的 aes-128cbc的模式进行加密
const crypto = require('crypto');
// 创建一个密钥 Math.random().toString(32).slice(-8) + Math.random().toString(32).slice(-8)
const secret = Buffer.from('1u55am8gjesvspiq');
// iv需要使用一个随机的128个字节,并且是长度为16的字符串
let iv = process.env.NODE_ENV === 'development' ? 'jusmbempvlj8kopo' : Math.random().toString(32).slice(-8) + Math.random().toString(32).slice(-8);
iv = Buffer.from(iv);
/**
 * 加密函数
 * @param str
 * @returns {string}
 */
exports.encrypt = function (str) {
    // 创建一个加密对象,使用啥方式加密
    const crt = crypto.createCipheriv("aes-128-cbc", secret, iv);
    // 进行加密,使用输入使用啥编码,输出使用啥编码
    let res = crt.update(str, 'utf-8', 'hex');
    // 最后结果使用啥编码输出
    res += crt.final('hex');
    return res;
}
/**
 * 解密
 * @param str
 * @returns {string}
 */
exports.decrypt = function (str) {
    // 创建一个解密对象,使用啥方式解密
    let dct = crypto.createDecipheriv("aes-128-cbc", secret, iv);
    let re = dct.update(str, 'hex', 'utf-8');
    re += dct.final('utf-8');
    return re;
}
相关文章
|
SQL JavaScript 安全
【Node.js实战】一文带你开发博客项目之安全(sql注入、xss攻击、md5加密算法)
【Node.js实战】一文带你开发博客项目之安全(sql注入、xss攻击、md5加密算法)
297 0
|
JavaScript 数据安全/隐私保护
Node.js:MD5加密字符串
Node.js:MD5加密字符串
96 0
|
C# 数据安全/隐私保护
C#实现微信AES-128-CBC加密数据的解密
原文:C#实现微信AES-128-CBC加密数据的解密 1.微信小程序登录获取用户的openid信息 需要使用AES-128-CBC解密处理 /// /// ASE加解密 /// ...
1547 0
|
1天前
|
SQL 安全 程序员
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第30天】在数字化时代,网络安全和信息安全已成为全球关注的焦点。本文将探讨网络安全漏洞、加密技术以及提升安全意识的重要性。我们将通过代码示例,深入理解网络安全的基础知识,包括常见的网络攻击手段、防御策略和加密技术的实际应用。同时,我们还将讨论如何提高个人和企业的安全意识,以应对日益复杂的网络安全威胁。
|
2天前
|
SQL 安全 算法
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第29天】随着互联网的普及,网络安全问题日益严重。本文将介绍网络安全漏洞、加密技术以及安全意识等方面的内容,帮助读者了解网络安全的重要性,提高自身的网络安全意识。
|
1天前
|
存储 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第30天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞的概念、加密技术的基本原理以及如何提高个人和组织的安全意识。我们将通过实际案例分析,探讨网络安全漏洞的危害,并分享一些常见的加密技术和安全意识提升方法。无论你是网络管理员还是普通用户,这篇文章都将帮助你更好地了解网络安全和信息安全的重要性,并提供实用的建议来保护你的信息资产。
|
1天前
|
SQL 安全 算法
网络安全的盾牌与剑:漏洞防御与加密技术的实战应用
【9月更文挑战第30天】在数字时代的浪潮中,网络安全成为守护信息资产的关键防线。本文深入浅出地探讨了网络安全中的两大核心议题——安全漏洞与加密技术,并辅以实例和代码演示,旨在提升公众的安全意识和技术防护能力。