比如下面是笔者的一次测试结不雅(小我弱机PC, i5-4460 CPU 3.20GHz) :
- cost time
- 8 0.021307
- 9 0.037150
- 10 0.079283
- 11 0.175612
- 12 0.317375
- 13 0.663080
- 14 1.330451
- 15 2.245152
- 16 4.291169
- 17 8.318790
- 18 16.472902
- 19 35.146999
附:测试代码
显然,cost不是越大年夜越好,越大年夜的话会越占用办事器的CPU,反而轻易引起DOS进击。建议根据办事器的设备和营业的需求设置为10~12即可。最好同时对同一IP同一用户的登录测验测验次数做限制,预防DOS进击。
一个安然地存储暗码的筹划
总上所述,一个安然地存储暗码的筹划应当是如许子的:(直接放代码吧)
这个速度与md5比拟的确是蜗牛与猎豹的差别 — 即使按照cost=8, 一个8位的大年夜小写字母+数字的暗码也要14万年才能暴力破解掉落,更何况一般办事器都邑至少设置为10或更大年夜的值(那就须要54万年或更久了)。
这里不得不插播一句:PHP不雅然是世界上最好的说话 — 标准库琅绫擎已经给出懂得决筹划。
- class User extends BaseModel
- {
- const PASSWORD_COST = 11; // 这里设备bcrypt算法的价值,根据须要来随时进级
- const PASSWORD_ALGO = PASSWORD_BCRYPT; // 默认应用(如今也只能用)bcrypt
- /**
- * 验证暗码是否精确
- *
- * @param string $plainPassword 用户暗码的明文
- * @param bool $autoRehash 是否主动从新计算下暗码的hash值(如不雅有须要的话)
- * @return bool
- */
- public function verifyPassword($plainPassword, $autoRehash = true)
- {
- if (password_verify($plainPassword, $this->password)) {
- if ($autoRehash && password_needs_rehash($this->
推荐阅读
跟着后面文┞仿的宣布,这些链接会逐渐生效。 预备情况 断点 存放器和内存 Elves 和 dwarves 源码和旌旗灯号 源码层慢慢履行 源码层断点 调用栈 攫取变量 10.>>>详细阅读
本文标题:密码存储中MD5的安全问题与替代方案
地址:http://www.17bianji.com/lsqh/35949.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示