Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 在数据库中存储密码是否有标准方法?_Security_Active Directory_Passwords - Fatal编程技术网

Security 在数据库中存储密码是否有标准方法?

Security 在数据库中存储密码是否有标准方法?,security,active-directory,passwords,Security,Active Directory,Passwords,因此,密码不应该以明文形式存储,但很多密码还是以明文形式存储的。对于其他人,是否有存储密码的标准方式?我的意思是SHA1哈希或MD5哈希,如果是,盐的大小是多少?有更好的地方问这个问题吗 我正试图从从事目录服务的系统管理员和顾问那里汲取经验。我想看看是否有一个模式 编辑:我想澄清的是,我自己并不是想学习如何更好地存储密码,而是想了解密码的存储方式有多少种,以及是否有标准(如果有的话)。你可以了解salt的长度(128-256位之间似乎是共识) 至于要使用什么算法,您肯定应该使用SHA1。MD5在

因此,密码不应该以明文形式存储,但很多密码还是以明文形式存储的。对于其他人,是否有存储密码的标准方式?我的意思是SHA1哈希或MD5哈希,如果是,盐的大小是多少?有更好的地方问这个问题吗

我正试图从从事目录服务的系统管理员和顾问那里汲取经验。我想看看是否有一个模式

编辑:我想澄清的是,我自己并不是想学习如何更好地存储密码,而是想了解密码的存储方式有多少种,以及是否有标准(如果有的话)。

你可以了解salt的长度(128-256位之间似乎是共识)


至于要使用什么算法,您肯定应该使用SHA1。MD5在很久以前就被认为已损坏,尽管它仍然被广泛使用(请参阅)。MD5已损坏一段时间,SHA-1也有问题

如果您想存储一个长期安全的散列,SHA-256或SHA-512(SHA-2系列散列的一部分,被设计为SHA-1的安全替代品)是一个很好的选择,128到256位的盐是标准的


然而,现在使用普通散列并不是最好的方法。自适应散列是专门为这种类型的存储设计的,因为计算结果所需的时间可以通过额外的计算来减慢。这是防止暴力攻击的一个非常重要的特征r存储的密码。基于对Blowfish加密算法的修改,一种强大的、标准的自适应哈希实现是bcrypt()。

应对密码进行哈希,并将哈希存储在数据库中。 但是,SHA*和MD5的哈希算法太快,无法用于哈希密码。 对于散列密码,理想情况下,您需要的是速度慢得多的东西,它本身不适合暴力/彩虹表攻击

您可以确保在存储哈希之前对密码进行1000次哈希运算,以节省时间和计算量,但当您有像bcrypt这样的算法为您完成这项工作时,为什么还要麻烦这么做呢

您应该使用bcrypt散列您的密码。有关详细信息,请访问


在bcrypt中,由于salt被附加到hash中,因此表中甚至不需要两列“password\u hash”和“salt”。只要“password\u hash”就可以了。混乱越少越好。

我希望被否决的人能够解释为什么他认为bcrypt是一个错误的选择(或者不管是什么原因导致否决)!!虽然SHA1比MD5好得多,但它不是为存储密码而设计的。您应该使用类似于
bcrypt
。请参阅@jeffsix和@Shivam的答案