计算机概念笔记
英文术语
params:参数
claim:声明
validate:确认
exp(expiry date):到期时间
marshal:将数据编码为json
unmarshal:将json解码到相应的数据结构
密码加密
密码加密是通过算法将明文密码转换为密文,以保护用户信息安全的技术手段。
明文通过哈希,加盐转换成密文存储
下一次登陆时比较转换后的密文和存储密文是否相同
加盐:生成一个随机字符串$s$ 将$s$和$pwd$拼接之后再哈希得到$hash$, 数据库存储: $s+hash$
网络令牌JWT
JSON Web Token 入门教程 - 阮一峰的网络日志
JWT三个部分:头部,负载,签名
Header.Payload.Signature
- header:签名算法+令牌类型
- payload:json对象,用来存放实际需要传递的数据,不加密。包括注册声明(Registered Claims),公共声明(Public Claims),私有声明(Private Claims)
- signatrue:对前两部分的签名,防止数据篡改。需要指定密钥
secret(只有服务器端知道),通过header指定的签名算法生成签名 :HMAC SHA256(base64url(header)+'.'+base64url(payload),secret)
JWT使用方式:客户端存储在cookie或localstorage里。请求头里加入到authorization并加上Bearer前缀