如下图所示:
1 第一种方式
MD5 算法 可以根据 需求修改 SHA 等哈希算法 但是主要的过程是这样的 sessionID 是由服务器下发的 可以保存在服务器 每次请求数据的时候 需要回传给服务器 对比sessionID 服务器可能对sessionID 进行比对 比如 登录过期 登录信息进行处理
2 第二种方式 因为第一次密码是明文传输 非常的不安全 所以引入RSA 非对称加密 如下图
相比较第一种方式更加安全 第一次注册登录的时候 不是明文登陆了 RSA 公钥可以通过OpenSSL 去生成 这样的文章很多 可以自己去搜索
3 第三种 方式 微信 支付宝 等大型企业都在用的这种方式
这种方式是 客户端(手机)自己生成秘钥对 对token进行加密和解密 这样的方式安全性更高
4 第四种方式 直接采用Https方式处理 内部采用的是SSL加密的方式 这样需要服务器一起共同支持
https 加密过程:
- 客户端给服务器发送随机数字N1 同时会发送加密协议 SSL版本号 等
- 服务器收到请求后发送第二个随机数字N2 和 SSL客户端的公钥给客户端 同时验证SSL版本号和协议号 是否一致
(此时 如果是单向验证 那么客户端只需要在向CA证书颁发机构同事请求一个根证书验证两个合法性) - 客户端用公钥 给N3进行非对称加密传给服务器 因为服务器有私钥可以解密这个随机数
- 客户端和服务器同事有三个随机数 这个三个随机数组成了 “对话密钥” 进行传输
附录 JSPatch加密流程