秘钥
和 明文
能够产生不同的密文摘要秘钥
和 md5.hmac密文摘要
持久化到数据库客户端向服务器请求秘钥(注册时候存储的秘钥)
在用户提交数据的时候对密码进行加密 :
md5.hmac(key , pwd) ==> 子摘要
md5.hamc(key , (子摘要 + ‘当前提交时间’)) ==> 总摘要
当服务器接收到总摘要消息的时候处理流程 :
md5.hamc(key , ‘当前提交时间‘ + pwdDigest) ==>目的摘要1
md5.hamc(key , ‘当前提交时间 + 1(分钟)‘ + pwdDigest) ==>目的摘要2
注册只有一次, 提交 关键摘要 的操作只有一次,因此受到拦截数据的几率很少
在登录的时候,由于加密使用了系统时间,因此这样可以保证密码摘要的动态性,而且服务器只会辨认一分钟以内的密文摘要,这样做,就算用户提交数据给拦截了,也很少有时间提供给黑客达到模仿正确登录请求
原文地址:http://blog.csdn.net/chenyblog/article/details/44347147