发表于: 2020-08-16 23:04:41
1 1479
今天完成的事:
深入理解token。
了解非对称加密和对称加密的优缺点。
hash算法的概念。
明天计划:
补springmvc基础。
建立一个学生表单页面来练习分页。
了解压测的相关名词概念。
遇到的问题:
收获:
token
是什么?
是一种验证用户身份有效性的方法。
token出来解决了什么问题?
1.token由客户端自行管理,不用存储进数据库,减轻服务器压力。
2.token可以避免CRSF攻击。
3.token是无状态的,可以在多个服务间共享。
服务器给客户端发送token和验证token的方法:
在token中加入一些用户的相关信息,比如用户id之类的。然后加上一个签名,把签名和用户信息用加密算法加密,密钥只有服务端知道。客户端发送token给服务器的时候,这个token服务器不保存,用同样的算法和密钥把这个token解密,如果解密成功,说明用户认证成功。签名的作用是保证token不被篡改。
对称加密算法
解密和加密都用同一个密钥。
优点
加密速度快。因为使用位运算,位运算是直接移动比特位。
缺点
1.发送方发送密钥的过程中,密钥有很大风险被黑客截获。
2.密钥管理量的困难,比如一个电商系统,每个用户和系统的之间密钥必须是唯一的,如果用户量很大,系统存储成本会很高。
常见的算法
DES,IDEA,AES。
非对称加密算法
使用一对密钥来解密加密,分为公钥和私钥。用公钥加密的文件,私钥才能解开,用私钥加密的文件,公钥才能解开。
公钥/私钥的使用场景:
公钥加密,私钥解密----》用于加解密。
私钥加密,公钥解密----》用于签名。
签名:不可能让人冒充自己发送信息,只有自己才能发消息,所以使用私钥签名,公钥验证。
优点
安全性更高,因为私钥是不用发送出去的,公钥即使被截获了也没有私钥解密,所以加密的信息不会泄露。
存储成本低,因为每个人都有一对公钥和私钥,只需要用公钥传递保密信息即可。
缺点
加密速度慢。
常见的算法
RSA,DSA,ECC。
hash算法:又叫散列算法,作用是把一段目标文本文件转换成不可逆的,具有相同长度的,杂凑的字符串。但是不叫hash加密,而是hash存储,因为加密是相对解密来说,而hash算法是不可逆的,也没有解密这一说法。hash是一种存储的方法,比如把明文密码经过hash算法转换后存入数据库中,用户每次输入密码,把这个输入的密码进行hash转换后再比对数据库中的hash码,如果两个hash码相同,那么密码就是正确的。
常见的算法:
MD5,SHA1。
评论