加密简单分类:
1.对称加密(加密和解密的密钥是相同的,常见的对称算法有DES、3DES等。)
2.非对称加密(加密和解密的密钥是不同的。从一个密钥很难推导出另一个密钥,公钥可以公开,私钥必须秘密保存。常见的非对称加密算法有RSA、DH等)
3.摘要算法(将任意长度的输入消息数据转化成固定长度的数据输出。常见的摘要算法有MD5、SHA1等,本质看可以理解为常用的密码散列函数)
4.数字信封(随机产生对称密钥,采用对称密钥算法对大批量数据进行加密,并采用非对称密码算法对该对称密钥进行加密;解密时,先用非对称密码算法解密后获得对称密钥,然后使用对称密码算法解密后获得数据明文)
5.数字签名 (消息用散列函数处理得到消息搞要,再用双钥密码体制的私钥对其进行加密,称为数字签名.)
优缺点对比:
1.对称密码算法优点是:加解密运算非常快,适合处理大批量数据。
缺点是:密钥分发与管理比较复杂。
2.非对称密码算法优点:公钥与私钥分开,适合密钥的分发与管理。
缺点是:运行速度不快,不适合处理大批量数据。
3.数字信封:将对称密码算法和非对称密码算法的优点结合起来,则既能处理大批量数据,又能简化密钥的分发与管理。
补充几种前端简单加密:
1.Base64加密
Base64是一种用来将二进制数据编码为可读文本形式的编码规范。在这个页面中,当用户点击“base64加密”按钮时,会调用一个JavaScript函数fn1(),该函数使用了window.btoa()方法进行Base64加密操作,并使用window.atob()方法进行解密操作。
// base64加密
var fn1=()=>{
// 加密
var str = window.btoa('123564896514')
console.log('加密后',str);
// 解密
var str2 = window.atob(str);
console.log('解密后',str2);
}
2.escape()(对应解码unescape())
该方法不会对ASCII字母和数字进行,也不会对* @ - _ + . / 。进行编码,其他所有的字符都会被转义序列替换。
3.encodeURI() (对应解码decodeURI())
该函数可把字符串作为URI进行编码。该方法不会对ASCII码字母和数字进行编码,也不会对- _ . ! ~ * ' ( )进行编码,对URIj具有特殊含义的符号也不会进行转义。
4.encodeURIComponent() (对应解码decodeURIComponent())
该函数可把字符串作为URI组件进行编码。该方法不会对ASCII码字母和数字进行编码,也不会对- _ . ! ~ * ' ( )进行编码。其他字符都是由一个或多个十六进制的转义序列替换的。