如何解决是CRYPT_SHA512,其迭代强度与bcrypt及相关问题一样强
| 我正在尝试在用户登录系统上进行首次尝试,并希望正确无误。我觉得自己在这里处于重复领域,但就我的所有阅读而言,我无法找到一些问题的可靠答案。但是,如果我错过了某些事情,请随时为我指出正确的方向。 我将对所有密码使用每位用户128位盐,并强制使用“ strong \”(我知道的主观!)密码,但无法算出对它们进行哈希加密的最佳方法, 将ѭ0iteration与迭代一起使用 和使用一样坚强CRYPT_BLOWFISH
?
有什么区别
在CRYPT_SHA512与
迭代和重复
hash_hmac
使用sha512
a(大)
次数。比一个更好
其他,建议
哈希密码?我问是因为
我正在使用Kohana和默认的
auth
实施用途
hash_hmac
。我不认为会
很难添加迭代到
那(而我将不得不
修改它以添加每位用户盐
无论如何),这导致我进入..
是否有模块可用于
Kohana(3.1)?在我写我的书之前
自己的,如果那里有东西
那个我会很乐意使用的
那。所以,一些执行
哈希扩展(无论是bcrypt还是
sha512),并允许每位用户添加盐。
最后,
...正如评论中指出的那样,问题4实际上完全是一个单独的问题,因此我将其删除。随意忽略它。我不会完全编辑它的唯一原因是答案中已经引用了它。
4.我的系统将允许具有不同特权的用户。
有些将是管理员
完全权利,一些开发人员拥有
一路少一些的权利
权归匿名用户
仅留下评论。
我找不到任何东西
有关此的信息。什么
是存储用户的“正确”方式
数据库中的帐户类型。一种
天真的第一想到的是,一个简单的
用户表中的整数将
够了,但我忍不住想
这是一个非常糟糕的主意。如果
有人掌握了数据库
会不难得出
int
代表管理员,
那么他们只需要蛮力
一个密码即可获得完全访问权限
权利。简单地满足就足够了吗
哈希帐户类型整数,然后
存储它,否则我应该看
在另一种方法?
解决方法
问题1-3的答案实际上是一个答案,由几个部分组成。
首先,您应该对每个用户的盐使用强哈希。我特别建议使用PBKDF2,这是一个有用的系统。这包括迭代。
您对bcrypt的引用有些不同。密码应始终为单向散列。您可以使用PBKDF2之类的功能或hmac来执行此操作。您不应该使用可逆算法。但是,最好将盐存储在散列本身之外。一种建议是使用从文件系统(而不是数据库)访问的密钥来加密盐。优选地,在具有600权限的文件中,该文件由Web服务器用户以外的其他人拥有,并由setuid等加载。这样,即使数据库遭到破坏,仍然没有足够的信息来获取密码。
第4部分是关于存储ACL的数据结构。有很多选择,因此请寻找适合您的东西。您可能不需要完整的ACL,而只需要具有用户角色/组或特定的权限标志。这将取决于您的应用程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。