继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

我堵塞

qq_慕侠1231268
关注TA
已关注
手记 1
粉丝 0
获赞 0

我的文章图片描述

保护存储数据

对称加密算法(Symmetric Encryption)是一种使用同一密钥进行加密和解密文本的算法,这也意味着通信双方要使用同一密钥进行加解密。对称加密算法对于大型数据的加密来说速度很快,因此它也主要用于存储数据的加密。比较常用的对称加密算法有AES、Blowfish、DES和RC4等。

crypto模块中主要利用以下方法来实现对称加密:

createCipheriv: 提供对称加密, 该方法接收三个参数,第一个是加密算法、第二个是密钥,而第三个是初始向量(initialization vector)

update 和 final: 先更新数据,然后获得密文

const crypto = require(‘crypto’);
const algorithm = ‘aes-256-cbc’;

const password = ‘Hello world’;
const salt = crypto.randomBytes(32);
cnst key = crypto.scryptSync(password, salt, 32);

const iv = crypto.randomBytes(16);
const cipher = crypto.crateCipheriv(algorithm, key, iv);
let ssn = ‘111-000-2342’;
let encrypted = cipher.update(ssn, ‘utf8’, ‘hex’);
// 获得加密密文
encrypted += cipher.final(‘hex’);

// 解密算法是反向操作
const decipher = crypto.createDecipheriv(algorithm, key, iv);
let decrypted = decipher.final(‘utf8’);
console.log(decrypted)

同时用于对称加密的密钥也需要有合适的密码管理策略进行处理,否则一旦密钥被破解,数据的安全性就无从保障。通常我们会使用一个密钥管理系统(KMS)进行管理密钥。所有的加密密钥都由该系统进行统一分配和管理,而用于数据加密的密钥由一个主密钥(master
key)进行加密。比较流行的KMS有https://cloud.google.com/kms/ 和 https://aws.amazon.com/kms/,当然你可以选择自己实现。

作者:scq000
链接:https://www.imooc.com/article/300010
来源:慕课网
本文首次发布于慕课网 ,转载请注明出处,谢谢合作

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP