是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,而只需要具有用户角色/组或特定的权限标志。这将取决于您的应用程序。     

要回复问题请先登录注册