js中常见的数据加密与解密的方法

JavaScript015

js中常见的数据加密与解密的方法,第1张

加密在我们前端的开发中也是经常遇见的。本文只把我们常用的加密方法进行总结。不去纠结加密的具体实现方式(密码学,太庞大了)。

常见的加密算法基本分为这几类,

RSA加密:RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。(这才是正经的加密算法)

非对称加密算法:非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法

DES算法的入口参数有三个:Key、Data、Mode。其中Key为7个字节共56位,是DES算法的工作密钥;Data为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。

AES这个标准用来替代原先的DES

DES/AES我们合并在一起介绍其用法和特点

Base64是一种用64个字符来表示任意二进制数据的方法。base64是一种编码方式而不是加密算法。只是看上去像是加密而已(吓唬人)。

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1.传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

例如:<script

language="javascript">document.write('<a

href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>')</script>

2.进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21")

3.

js使用数据时可以使用escape

例如:搜藏中history纪录。

4.escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。