查了好久好久的资料,现在脑子真是不好使,总是爱忘记,前脚查后脚忘…他妈的…查了那么多东西也没真的理解透彻,最后在一位大佬的帮助下算是把流程理清楚了.说的不一定对.
这里只写一个简单的流程就够了.
注册时候:
RSA加密算法加强密码传输时候的安全>
前端公钥加密>
后端私钥解密得到明文密码>
明文密码加盐
,信息摘要算法
>
数据库存储盐
和加密后的密码
这里并未涉及如何防止表单重复提交的问题.(其实我感觉重放攻击和防止表单重复提交的过程差不多…)
RSA加密可以使得传输层的信息不被篡改,注意只是篡改,就是能防止信息的劫持,因为劫持了也没什么用,但是不能防止重放攻击,
就是第三方可以拿一个一模一样的请求再次发送(比如说删除请求),那么就可以删除对应的东西了.为了防止这一点,可以选择使用timestamp和nonce的方案 timestamp和nonce,
同时百度查得知还有使用Redis Redis1