码迷,mamicode.com
首页 > 编程语言 > 详细

登录与注册的加密算法分析

时间:2015-03-17 22:01:53      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:加密   登录   注册   md5   

登录与注册的加密算法分析

算法目的

  • 提供固定的 秘钥明文 能够产生不同的密文摘要
  • hamc 算法 大概流程是 使用一个秘钥 对明文进行两次散列操作得到密文摘要
  • 哈希(散列)函数
    • MD5
    • SHA1
    • SHA256

注册

  • 向服务器请求一个随机的秘钥
  • 把注册的密码进行 md5.hmac(hamc使用md5的散列函数来操作字符)加密 : md5.hmac(key,message) ==> 密文摘要(key : 秘钥 , message : 明文) : md5.hmac密文摘要
  • 把摘要提交到服务器,同时服务器把 该 秘钥md5.hmac密文摘要 持久化到数据库

登录

  • 客户端向服务器请求秘钥(注册时候存储的秘钥)

  • 在用户提交数据的时候对密码进行加密 :
    md5.hmac(key , pwd) ==> 子摘要
    md5.hamc(key , (子摘要 + ‘当前提交时间’)) ==> 总摘要

  • 当服务器接收到总摘要消息的时候处理流程 :

    • 取出 秘钥 key , 存储的密文摘要 pwdDigest
    • 根据以下公式计算两段密文摘要 :
    md5.hamc(key , ‘当前提交时间‘ + pwdDigest) ==>目的摘要1
    md5.hamc(key , ‘当前提交时间 + 1(分钟)‘ + pwdDigest) ==>目的摘要2
    
    • 如果用户提交的 总摘要 == 目的摘要1 || 总摘要 == 目的摘要2 为密码正确

这样做的好处

  • 注册只有一次, 提交 关键摘要 的操作只有一次,因此受到拦截数据的几率很少

  • 在登录的时候,由于加密使用了系统时间,因此这样可以保证密码摘要的动态性,而且服务器只会辨认一分钟以内的密文摘要,这样做,就算用户提交数据给拦截了,也很少有时间提供给黑客达到模仿正确登录请求

登录与注册的加密算法分析

标签:加密   登录   注册   md5   

原文地址:http://blog.csdn.net/chenyblog/article/details/44347147

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!