数据传递的安全性-加密解密
前言
上一篇提到了某段时间用户并发量突然变高, 导致调用某个接口堵塞, 然后程序炸了, 虽然说是因为接口问题, 但我感觉程序中加密解密这玩意儿, 多少是影响性能的, 于是我就打算自己了解了解
正文
因为项目要求,需要在前后端数据传递中保证数据的安全性, 所以就需要在传递中进行加密, 后端收到后进行解密 (外网部署使用https即可)
使用的加密方式分为三种:
对称加密(symmetric),例如:AES、DES、3DES、RC4等
非对称加密(asymmetric),例如:RSA、DSA、ECDSA、ElGamal、SM2等
摘要加密(digest),例如:MD5、SHA-1、SHA-256、HMAC、SM3等
用于数据传递加密的是"对称加密","非对称加密",而"摘要加密"是用来做数字签名的,对消息进行加密验证, 这个插个题外小ps: MD5是号称不可逆的加密方式, 而百度却能查到MD5解密相关的在线小工具, 这是哪个大佬破解了? 其实这种小工具只是采用了最简单的方法,把加密前和后的答案直接存库, 所谓的解密也只是库里查找答案而已, 像一些简单的能够查到, 复杂的就查不到了
对称加密: 在发送端和接收端采用相同的密钥进行加密和解密,是一种简单有效的加密算法,它是使用相同的秘钥加密和解密信息的方法
非对称加密: 它使用一对密钥(key)(public key和private key)来加密和解密数据,其中公钥可以公开,而私钥必须保密。非对称加密的主要特点是安全性高,适用于少量数据的加密
这里也就可以知晓, 对于要求高安全性的敏感数据就需要使用"非对称加密",而一些普通数据, 没有指定要求的, 其实"对称加密" 就可以满足使用了, "非对称加密" 之所以安全度更高, 是因为采用了更复杂的算法处理 ,因此在资源消耗上也更加费事
具体的加密算法详情就自行了解了,这里直接根据自己查到的做个总结,同时在了解各种加密方法的过程中,我忽略了一个东西, 其实秘钥长度也是对整体加密解密的效率和安全性起到了影响作用
"对称加密"就推荐 AES
总体上根据查阅的资料上来看,DES属于很早的加密算法了, 因此后续出来了很多迭代产品, 3DES, AES 等, 而对比来说, AES安全度和性能都优于DES
"非对称加密"就推荐 SM2
根据所查的资料,查到最多的就是RSA了,这个好像用的挺多的,也算属于老牌的加密算法了, 但现在了解到有了更好的选择
总结
因为文章中所得的结论,都是根据查阅资料得出来的,并没有程序中去测试,也只能做个参考. 但至少是了解到了这个比较偏的知识, 后面遇到至少知道从哪里下手,就不用病急乱投医