首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter:像这样加密密码安全吗?

Codeigniter:像这样加密密码安全吗?
EN

Stack Overflow用户
提问于 2013-02-05 01:19:20
回答 5查看 1.3K关注 0票数 0

我想知道有没有人能给我一些建议?我想知道使用Codeigniter加密密码的以下代码有多安全/不安全或垃圾?

代码语言:javascript
复制
$safe_password = sha1($password, $config['encryption_key'])

如果不安全,人们能给我一些使用Codeigniter使其更安全的提示吗?

非常感谢:)

EN

回答 5

Stack Overflow用户

发布于 2013-02-05 01:25:11

众所周知,sha1很容易受到碰撞攻击,请尝试使用bcrypt,因为它是最好的之一。如果bcrypt对您不起作用,请使用sha512并添加盐。

bcrypt看起来很难使用,但是这里有一篇关于为什么你应该使用它的文章:http://phpmaster.com/why-you-should-use-bcrypt-to-hash-stored-passwords/

sha1不安全的原因是因为碰撞攻击,这里是暴露sha1的安全风险的论文之一:http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html

如果你想使用sha512,你需要做的就是:

代码语言:javascript
复制
hash('sha512', $password.$salt);

并确保您始终使用盐,否则某人可以使用彩虹表(数据库)来查看您的散列是否与数据库中的公共密码匹配。

票数 2
EN

Stack Overflow用户

发布于 2013-02-05 01:25:40

更好的解决方案是使用bcrypt,看看这个tutorial

下面是一个可以与Codeigniter https://github.com/waldirbertazzijr/codeigniter-bcrypt一起使用的小型库

另一个相关的question

票数 0
EN

Stack Overflow用户

发布于 2013-02-05 01:26:00

哈希算法,如sha1和md5,不适合密码存储。它们被设计成非常高效的。这意味着暴力强制是非常快的。即使黑客获得了你的哈希密码的副本,暴力破解它也是相当快的。如果你使用盐,它会降低彩虹桌的效率,但对暴力没有任何帮助。使用较慢的算法会使暴力无效。例如,bcrypt算法可以根据您的需要设置为尽可能慢,并且它在内部使用盐来防止彩虹表。如果我是你,我会采用这样的方法或类似的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14691914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档