计算机概念笔记

英文术语

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使用方式:客户端存储在cookielocalstorage里。请求头里加入到authorization并加上Bearer前缀