1
est 2013-11-23 22:37:03 +08:00
第一句话就说错了吧。salt直接随机生成明文保存啊。。。
|
3
rannnn 2013-11-23 22:45:41 +08:00
抱歉没能看懂。第一句话你想表达什么。。。
|
7
rannnn 2013-11-23 23:22:53 +08:00 1
@raincious 加salt的意义不是防止被穷举,是为了防止被直接查rainbow table。你在这一点上理解错误了导致别人neg你而不是因为你用md5
|
8
raincious OP |
9
ini 2013-11-23 23:30:27 +08:00 1
MD5不是用来加密的吧,MD5是用来做校验的。。
|
10
raincious OP @ini 目前来看是这样。但是它快啊。如果我用更慢的算法,可能代价来看不合适。这也是为什么我一直在用MD5来做这些。
密码其实我用的是SHA1嗯。 我想可能是这样的: 我的算法: 用同一套算法穷举可逆算,用到MD5,然后让MD5慢一点(至少16倍吧,取决于Salt中的字符,正常情况是(16 * 3) + (15 * 2)倍,因为替换了原始MD5嘛,但是MD5不能“变得更慢”,会随着计算能力而更容易算出)。 PHP自己的password_hash算法: 拿到Salt之后穷举可逆算,用到Bcrypt,自己就比较慢。 而且两套方案,一套非主流,另一条是官方的。我觉得大多数人还是倾向于官方嗯。 |
13
bombless 2013-11-24 07:09:56 +08:00
wordpress现在那套感觉还是很不错的……
反正被那阵势吓到了,都没想过再去跑彩虹表,哈哈。 |
14
9hills 2013-11-24 11:35:38 +08:00
|
15
9hills 2013-11-24 12:16:41 +08:00 2
@raincious
1w IP的站也算是大站了,假设这个站的所有页面都需要登陆(也就是没有匿名用户),Cookie保留1周 也就是每天平均会有 1500个登陆动作,md5一次的时间可以认为是0(ms级别),bcrypt按照0.3s计算 也就是用了bcrypt后,每天多耗费450s,而且是均匀分布的 这点时间成本有节省的必要么。。。 另外MD5就算加salt也不安全,尤其是salt泄漏后,跑个单独的彩虹表是很快的,上1G/s的速度(如果是针对个别用户,用暴破也非常快) bcrypt是安全和速度的balance,跑彩虹表,跑死吧,一个0.x s <_< |
16
raincious OP @9hills 谢谢建议。
我现在的打算是,拿MD5当验证用的Key好了,密码什么的至少用SHA256或者SHA512来存。 这样就可以: 1、使用MD5来进行频繁的操作,比如产生临时Key以及这些Key的验证之类,不会太多影响性能。 2、使用更复杂的算法来进行密码加密。这些操作只需要在登录时和设定密码时进行,所以耗时一点也没关系,而且已经改成循环执行N次的来取得Hash的了。貌似这样就更安全了嗯,SHA512混着沙默认算1000次,应该够了吧。 Bcrypt还是等有机器的时候再测试吧,现在最多也只能拿到旧i7什么的,结果不明显嗯。 * 代码已更新 |
17
raincious OP @9hills 不嗯。新架构上没有开发站点,因为架构还是在草稿的状态,只有我自己的网站在用,而网站也还在开发中,于是经常改改没问题。(而且挪窝了,换了轻松的地方,养活自己就可以,然后准备自己搞站,不给别人打工了。)
然后其实目前正好遇到了这个问题。因为新架构没有会话系统,正在实现,而会话这边需要有Hash方面的操作。所以我就算是找骂讨答案呗。 刚才看了下Bcrypt和MD5比较的相关文章。Bcrypt比MD5好几百个数量级是肯定的嗯。。。但我不确定真要写在Hash里,或许专门写个Passwording的比较好。 |
18
9hills 2013-11-24 12:36:49 +08:00 1
@raincious 就放弃hash搞密码吧,本身就不是为了密码设计的,因为性能太好了<_<
密码的算法关键是慢,快了反而不安全。Bcrypt的复杂度是能调整的,就是要慢到计算机无法忍受而人类可以忍受的地步,比如0.x s |
19
luikore 2013-11-24 20:31:02 +08:00
bcrypt 可以把速度调快的啊, 例如接近 MD5 的速度. 就算是低复杂度的 bcrypt 还是比 hash 有优势: 相同输入多次运行的出来结果也是不同的.
|
20
luikore 2013-11-24 20:34:53 +08:00
bcrypt 这么方便, 还不用自己搞 salt, 为什么还要造轮子...
跟楼主说改用 scrypt + pbkdf2 是不是有点困难... |
21
raincious OP @luikore
但,重复造轮子还是挺有意思的啊。 我不会告诉你我同时还在重复造SMTP操作其以及SESSION管理器的轮子嗯……目前正研究SMTP协议,SESSION管理器也有雏形了(但是由于安全原因以及代码实际写的很烂只在自己在开发的网站上测试嗯)。 Bcrypt等我做好这些在研究呗。 |
22
ShiningRay 2013-11-26 16:21:19 +08:00
好像这里没我啥事吧
|