您现在的位置:首页 --> 查看专题: 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天十大热文
- [734] WEB系统需要关注的一些点
- [221] 如何拿下简短的域名
- [20] 移动音乐产品梳理
- [15] 豆瓣是啥?
- [15] Chrome开发者工具的小技巧
- [13] Perl 的线程中的共享
- [13] 基于SSD的数据库性能优化
- [13] 产品经理的取舍之道与抽象能力
- [12] 内存的惰性初始化
- [12] iOS和Android设计规范备忘表
赞助商广告