前端数据加密技术

Base64

/* Base64是一种编码的模式 */
/* 我们可以对任意的数据进行Base64编码,总是会得到一个字符串(文本文件) ,这个字符串由65个字符拼接组成。*/

/* 任意数据 -Base64编码-> 字符串 -Base64解码-> 还原为之前的数据*/
例子
window.btoa("Nice") 加密
window.atob("TmljZQ==") 解码

JavaScript代码不支持直接对中文进行Base64转码,如果要对中文进行处理那么需要先转换中文
例子
window.btoa(unescape(encodeURIComponent("我喜欢你"))) 加密
decodeURIComponent(escape(window.atob("5oiR5Zac5qyi5L2g")))
解码

单向散列函数

/* 特点 */
/* [1] 加密的过程是单向的,是不可逆的(只能加密不能解密)。 */
/* [2] 对任意数据进行加密,得到的字符串都是固定长度的。 */
/* [3] 如果明文(原文)相同,那么密文(散列值)一定相同。 */
/* [4] 如果明文(原文)不同,那么密文一定不同。 */
/* [5] 速度快,效率高。 */

/* 经典算法 */
/* MD4 MD5 */
/* SHA(0-1-2) SHA256 SHA512 ... */

/* 主要应用 */
/* [1] 版权(正版) 序列号 */
/* [2] 文件匹配(验证)。 */
/* [3] 云盘(百度|360|...) 云盘秒传 */
/* [4] 云盘(100个视频-违规视频) */
/* [5] 注册和登录。 */

/* 简单MD5加密其实并不是特别安全: */
/* 加密模型复杂化 */
/* (0) 单次MD5加密 ★*/
/* (1) 多次MD5加密 ★★*/
/* (2) MD5 + salt 加盐 ★★★*/
/* (3) MD5加密截取字符串 ★★★★★*/

对称加密算法

/* 特点 */
/* (1) 加密和解密使用相同的密钥。 */
/* (2) 速度快,效率高。 */
/* 典型算法 */
/* DES\2DES\3DES 数据加密标准算法 */
/* AES 高级数据加密标签算法 */
/* 备注:安全性很高,但是仍然存在问题 */
/* [1] 密钥传输安全的问题。 */
/* [2] 要维护数量庞大的密钥对。 */

非对称加密算法

/* 特点 */
/* [1] 加密使用公钥,解密使用私钥。 */
/* [2] 公钥是可以公开的,私钥不能公开(打死都不能说的)。 */
/* 缺点 */
/* 加密和解密的时候速度相对很慢,性能不好。 */
/* 典型加密算法:RSA */

猜你喜欢

转载自www.cnblogs.com/imbacool/p/12532995.html