关于js加密算法。

前言:这篇不是原创,看了一位前辈(简书@IT老马)写的。中间是自己按照顺序进行的相关学习。记下来方便之后用。

对于前端来说,一些重要数据在传输后端之前,要进行加密一下。

比较流行的前端加密库

1.斯坦福大学的js加密库(简称SJCL)

关于1.是斯坦福大学计算机安全实验室创立的项目,旨在创建一个安全、快速、短小精悍、易使用、跨浏览器的js加密库。如果有更复杂的安全需求,可以查阅API,文档地址是(http://bitwiseshiftleft.github.com/sjcl/doc/),对应的demo页面是(http://bitwiseshiftleft.github.com/sjcl/demo/)。

比较容易上手,简单的用下面的代码就可以进行加密、解密数据。

sjcl.encrypt("password", "data")//加密数据

sjcl.decrypt("password","encrypted-data") // 解密数据


2.crypto-js

crypto是node的内置模块,目的是提供通用的加密和哈希算法。nodejs用c/c+=实现这些算法后,通过crypto这个模块暴露位js接口,方便使用,提高运行速度。使用的时候要安装一下。

MD5算法/sha1算法

MD5是一种常用的哈希算法。用于给任意数据一个"签名",这个签名通常用一个十六进制的字符串标识。

sha1哈希加密。对强行攻击的强度更大,但是循环步骤比MD5多,处理的缓存大,所以相同硬件下,运行速度比MD5慢。

下载MD5js文件sha1文件

第一种。

第二种。

md5

sha1


base64加密和解密

是一种用64个字符来表示而已二进制数据的方法。下载base64文件,引入。encode/decode

Hmac

也是一种哈希算法,可以利用MD5和sha1等哈希算法,但是额外需要一个秘钥,可以理解为用随机数'增强’的哈希算法。

const hamc = crypto.creatHmac('sha123','secret-key');

AES

一种常用的对称加密算法,加密解密都用一个秘钥。crypto提供了AES支持,但是需要自己封装函数。

Diffie-Hellman

DH算法是一种密钥交换协议,在双方不泄露密钥的情况下协商出一个密钥。


大概罗列这么多。具体项目用到在补充。

猜你喜欢

转载自blog.csdn.net/qq_42549337/article/details/80814038
今日推荐