CryptoJS 加密算法类库AES(二)

目录

AES 加解密介绍

AES 加密语法

AES 解密语法

案例1:文本加解密

案例2:对象加解密


  • AES 加解密都需要使用 toString() 方法把它们转换成字符串,解密时需要把字符串编译成 Utf8 编码格式
  • 对象、数组加密原始数据需要转换成 JSON 字符串,使用 JSON.stringify()
  • 对象、数组解密后的数据需要使用 JSON.parse() 解析

AES 加解密介绍

高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加解密用相同的密钥,具体加密流程如下图:

  • 明文P:
    • 没有经过加密的数据
  • 密文C:
    • 经加密函数处理后的数据
  • 密钥K:
    • 用来加密明文密码,在对称加密算法中,加解密密钥相同
    • 密钥是接收方与发送方协商产生,不可以直接在网络上传输,否则会导致密钥泄漏
    • 密钥通过非对称加密算法加密密钥,再通过网络传输给对方,或者直接面对面商量密钥
    • 密钥绝对不可以泄漏,否则会被攻击者还原密文,窃取机密数据
  • 对称加密算法:
    • 加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦
  • 非对称加密算法:
    • 加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。常见的非对称加密算法为RSA、ECC和EIGamal

AES 加密语法

CryptoJS.AES.encrypt('待加密字符串', '密钥').toString()

AES 解密语法

CryptoJS.AES.decrypt('待解密字符串', '密钥').toString(CryptoJS.enc.Utf8)

案例1:文本加解密

  • 加密
    • ciphertext 密文:经加密函数处理后的数据
const ciphertext = CryptoJS.AES.encrypt('my message', 'secret key').toString()
  • 解密
    • plaintext 明文:没有经过加密的数据
const plaintext = CryptoJS.AES.decrypt(ciphertext, 'secret key').toString(CryptoJS.enc.Utf8)

案例2:对象加解密

  • 原始数据
const arr = [{id: 1}, {id: 2}]
const strArr = JSON.stringify(arr)
  • 加密
const ciphertext = CryptoJS.AES.encrypt(strArr, 'secret key').toString()
  • 解密
const plaintext = CryptoJS.AES.decrypt(ciphertext, 'secret key').toString(CryptoJS.enc.Utf8)
const plaintextArr = JSON.parse(plaintext)

参考资料:

AES加密算法的详细介绍与实现_TimeShatter的博客-CSDN博客_aes加密AES简介高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图: 下面简单介绍下各个部分的作用与意义:明文P 没有经过加密的数据。密钥K 用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生https://blog.csdn.net/qq_28205153/article/details/55798628

理解AES加密解密的使用方法_技术改变生活-CSDN博客_aes用法很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难。本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法。最后给出例子来帮助理解AES加密解密的使用方法。https://blog.csdn.net/vieri_32/article/details/48345023

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值