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加密算法)
333 0
|
JavaScript 数据安全/隐私保护
Node.js:MD5加密字符串
Node.js:MD5加密字符串
106 0
|
C# 数据安全/隐私保护
C#实现微信AES-128-CBC加密数据的解密
原文:C#实现微信AES-128-CBC加密数据的解密 1.微信小程序登录获取用户的openid信息 需要使用AES-128-CBC解密处理 /// /// ASE加解密 /// ...
1566 0
|
10天前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
30天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
49 10
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
61 10