您现在的位置:首页 --> 查看专题: 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天十大热文
-
[50] 转载:cassandra读写性能原理分析
-
[49] memory prefetch浅析
-
[44] 《web前端最佳实践》—高维护性css
-
[36] 深入浅出cassandra 4 数据一致性问
-
[35] javascript插入样式
-
[35] 不是书评 :《我是一只IT小小鸟》
-
[35] 获取Dom元素的X/Y坐标
-
[35] 程序员技术练级攻略
-
[35] MySQL半同步存在的问题
-
[33] 图书馆的世界纪录
赞助商广告