您现在的位置:首页 --> 查看专题: HMAC
去年CSDN密码泄露案公布之后,很多专家跳出来讨伐说他家的程序员太白痴居然还在数据库里面存明文。最近linkedin的事件出来之后,如何保存密码,这个问题又被拉出来谈。我认为,密码怎么保存与怎么在网上传输,这两个问题不能分开来谈。除非你已经有了安全的信道,如SSL,否则还是存明文为妙。 mysql对其原始的CHAP协议做了些改进: storedhash=sha1(passphrase) reply=xor(passphrase, sha1(public_seed,storedhash) 在网络上发送的是public_seed、reply,数据库里面存储的是storedhash。所以如果只是拿到了mysql.user表里的数据,而没有原始的passphrase,想要构造出reply,还是挺困难的。不过我估计这个算法是工程师自己想出来的,根本就没找安全专家讨论过,未必经得起推敲。
HMAC-SHA1、HMAC-MD5等算法,在PHP5.1.X之后,可直接使用如下形式来计算 echo hash_hmac(\'sha1\',$data,$key); 如果加载了MHASH扩展,也可直接使用mhash来进行运算 echo bin2hex(mhash(MHASH_SHA1, $data, $key)); 如果PHP版本低于5.1.X或者没有加载Mhash、或HMAC扩展,可使用如下的通用方法来进行相应运算下载:
[ 共2篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [66] Oracle MTS模式下 进程地址与会话信
- [65] Go Reflect 性能
- [64] 如何拿下简短的域名
- [60] android 开发入门
- [59] 图书馆的世界纪录
- [59] 【社会化设计】自我(self)部分――欢迎区
- [58] IOS安全–浅谈关于IOS加固的几种方法
- [54] 视觉调整-设计师 vs. 逻辑
- [48] 界面设计速成
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
赞助商广告