Change Box

生命成为一朵烟花最好,升起在旷野的夜空,明亮而狂野,盲目而绚烂。然后沉寂,消失。 如此干脆。

Bcrypt与密码安全

| Comments

最近闹的沸沸扬扬的各大网站用户密码泄露事件, 让网民们震惊了,尽然都是明文保存密码。因为存在某些漏洞,比如sql注入, 可能让Hacker拿到全字段的数据列表,如果是明文密码, 那就帮Hacker省事了, Hacker都不需要暴力破解了。

其实对于密码有很多加密手段,但是最安全的莫过于Bcrypt这种算法了, 详细的参看Coda Hala的这篇文章, 也有中文版。 其实安全也是相对的, 对于Bcrypt这种算法的优势再于它的慢, 延缓了Hacker暴力破解的时间, 对于用户来说,就相对安全了。

用Rails的同学就有福了。 devise默认就是支持Bcrypt的。

initializers/devise.rb
1
  config.stretches = Rails.env.test? ? 1 : 10

这里的stretches被用来做work factor, 数值越大越慢, 如果你发现一个crypt生成值在20毫秒之内,那这个stretches就正好。

另一个措施就是可以在用户输入12345之类的弱密码的时候,禁止其注册,并提示其使用强度比较高的密码。

Comments