301得票7回答
你把盐字符串存储在哪里?

在将密码散列存储到数据库中时,我一直使用适当的每个条目(entry)的盐字符串。对于我的需求,将盐存储在数据库中与散列密码一起工作得很好。 然而,有些人建议将盐从数据库中分开存储。他们的论点是,如果数据库被攻击者攻破,攻击者仍然可以建立彩虹表,考虑特定的盐字符串,以便逐个破解一个帐户。如果此...

249得票10回答
密码盐如何防止彩虹表攻击?

我有些困惑盐对密码的作用是什么。我理解主要用途是防止彩虹表攻击。但是,我看到实现这个目的的方法似乎并没有真正增加难度。 我看过很多教程,建议采用以下方式使用盐:$hash = md5($salt.$password) 推理是,哈希现在映射到的不是原始密码,而是密码和盐的组合。但是假设 $s...

208得票17回答
在C#中哈希和加盐密码

我刚刚阅读了DavidHayden关于用户密码哈希的一篇文章。 真的,我不明白他试图实现什么。 以下是他的代码: private static string CreateSalt(int size) { //Generate a cryptographic random numb...

207得票1回答
我需要存储bcrypt的盐值吗?

bCrypt的javadoc中给出了如何加密密码的代码:String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); 要检查明文密码是否与先前哈希过的密码匹配,请使用checkpw方法:if (BCrypt.checkpw...

180得票5回答
最佳实践:密码加盐和加胡椒粉?

我看到了一个讨论,了解到我一直在做的并不是给密码加盐,而是加胡椒粉。因此,我现在开始使用以下函数来同时进行加盐和加胡椒粉:hash_function($salt.hash_function($pepper.$password)) [multiple iterations] 忽略所选哈希算法(我...

175得票7回答
如何安全地存储用户密码?

这比普通的MD5更加安全吗?我刚开始研究密码安全,对PHP还不太了解。 $salt = 'csdnfgksdgojnmfnb'; $password = md5($salt.$_POST['password']); $result = mysql_query("SELECT id FROM...

166得票8回答
给密码加盐:最佳实践?

我一直很好奇…在对密码进行哈希时,添加盐应该放在前面还是后面?为什么?或者只要加盐了,它就不重要了吗? 解释一下:我们现在都(希望如此)知道,在将密码哈希存储在数据库中之前,我们应该先对其进行盐加密 [编辑:这样可以避免像Jeff Atwood最近发生的事情那样的问题what happene...

145得票5回答
如何使用PHP的password_hash函数对密码进行哈希和验证

最近我一直在尝试在一个我在互联网上偶然发现的登录脚本中实现自己的安全措施。在努力学习如何为每个用户生成盐的过程中,我偶然发现了password_hash。 根据我所理解的(基于这个页面上的阅读),当您使用password_hash时,该行中已经生成了盐。这是真的吗? 我还有一个问题就是,是...

141得票5回答
用户密码盐的最佳长度是多少?

任何salt都可以在为用户密码设置盐值和哈希时提供帮助。那么,盐值应该有多长才是最佳实践?由于我将在用户表中存储盐值,因此我想要在存储尺寸和安全性之间取得最佳平衡。随机生成的10个字符盐值是否足够安全?还是需要更长的盐值?

131得票9回答
使用Python对密码进行盐值加密和哈希处理

这段代码旨在使用盐值对密码进行哈希处理,并将盐值和哈希后的密码保存在数据库中,而原始密码则不予保存。 考虑到操作的敏感性,我希望确保一切都是合法的。import hashlib import base64 import uuid password = 'test_password' sal...