前端的加密和解密,crypto-js的应用,AES / RSA / md5

每日鸡汤:每个你想学习的瞬间,都是未来你的向自己求救

内容预警*****新手内容,自己学习总结用****大佬请绕道

之前看https原理,看到对称加密和非对称加密,各种加密方法,看得云里雾里,即便是总结了这篇文章,但是过几天就忘了,所以理论和实践还得结合才对。

最近遇到一个项目,需求是:【把一个数据加密存储到本地localstorage,然后用的时候取出来再解密。】

其实不管是https中的加密解密,还是其他项目的加密解密,原理是一样的,都是用的一套算法。所以常用的几个加密/解密算法也是一致的,不管你是前端开发还是后端开发。

前端开发的常用的包是 crypto-js,这个包包含了所有我们常用的加密/解密算法。

在我这个项目中我们使用一个key 来加密一段文字text,生成secretText,解密的时候也用这个key来解密secretText得到text;这样在加密和解密的过程中我们都用到了同一个key。这种就是传说中的对称加密,比如AES算法。

https在传输过程中的数据就是用对称加密传输的,对称加密用的key(就是上面说的那个key)则是用非对称加密传输的。

非对称加密,顾名思义,肯定是加密/解密过程不能用同一个key.  常用的非对称加密是RSA,这个就可以使用另一个包js-crypto-rsa了。但是我在实际项目中没有用到过,所以先记住RSA是非对称加密算法就行,等我用到了再来补充。

小结,其实只有两个知识点

  1. AES是对称加密
  2. RSA是非对称加密

但是!问题来了,我就是总搞混着两个,都是三个字母,咋记啊?动手写一次就知道了,我们前端用的加密常用的就是对称加密就是AES算法,重要的事情说三遍AES是对称加密,AES是对称加密,AES是对称加密。

还有一个问题,他们经常说的md5是啥,反正就是很常用?

md5是一种散列(哈希)算法,没错散列算法,也叫哈希算法,把任意成都的输入变换成固定长度的输出,常见的有md5,sha1等。

没错,哈希算法也是一种加密算法,但是区别是他是

  1. 不可逆的(不能更具输出推算输入)
  2. 输出出的长度是相同的。
  3. 相同的输入每次计算会产生相同的输出
  4. 不同的输入输出一定是不同的

所以我们在开发过程的过程中,假如有一个文件(或文字),我们可以计算一下他的md5,然后过一段时间再计算一次,如果两次结果相同那么这个文件一定没有改动过,反之文件一定有更改。由此可见,可以使用哈希算法来判断数据的唯一性。是一种信息摘要算法

小结,其实只有两个知识点

  1. md5,sha是哈希算法
  2. 哈希算法不可逆

本篇文章知识点总结

  1. 记住2组单词  AES/RSA.   和  md5 / sha
  2. AES/RSA 用来加密/解密
  3. md5 / sha 用来做信息摘要

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值