Passwords 使用sha256将密码转换为sha256+;盐
我有一个大数据库,用户和密码都在sha256哈希中。现在我编写新版本,我想使用sha256+salt。有没有一种方法可以将使用sha256的相同密码转换为sha256+salt,并且在登录时没有问题?对密码进行salt和哈希处理的方法是使用明文密码,将salt添加到其中,然后对其进行哈希处理。如果已有密码数据库已经进行了sha256哈希运算,那么就没有明文密码,而且一旦进行哈希运算,就无法轻松地将其恢复为明文(这是一件好事) 你可以做的是将密码以当前形式进行sha256散列,添加salt,然后第二次对其进行散列-或更好的:很多次,使用更好的散列算法 然后,验证密码的功能将重复这些步骤以检查密码是否正确。假设第二个散列只是sha256散列一次,以使示例更清晰,尽管它不够安全Passwords 使用sha256将密码转换为sha256+;盐,passwords,sha256,data-conversion,Passwords,Sha256,Data Conversion,我有一个大数据库,用户和密码都在sha256哈希中。现在我编写新版本,我想使用sha256+salt。有没有一种方法可以将使用sha256的相同密码转换为sha256+salt,并且在登录时没有问题?对密码进行salt和哈希处理的方法是使用明文密码,将salt添加到其中,然后对其进行哈希处理。如果已有密码数据库已经进行了sha256哈希运算,那么就没有明文密码,而且一旦进行哈希运算,就无法轻松地将其恢复为明文(这是一件好事) 你可以做的是将密码以当前形式进行sha256散列,添加salt,然后第
也就是说,你会在第二天得到更多的合格答案。例如,我刚刚了解了为什么salt->sha256 hashing once不够安全,以及如何处理密码以获得更安全的存储。对密码进行salt和hash处理的方法是获取明文密码,将salt添加到其中,然后对其进行hash处理。如果已有密码数据库已经进行了sha256哈希运算,那么就没有明文密码,而且一旦进行哈希运算,就无法轻松地将其恢复为明文(这是一件好事) 你可以做的是将密码以当前形式进行sha256散列,添加salt,然后第二次对其进行散列-或更好的:很多次,使用更好的散列算法 然后,验证密码的功能将重复这些步骤以检查密码是否正确。假设第二个散列只是sha256散列一次,以使示例更清晰,尽管它不够安全
也就是说,你会在第二天得到更多的合格答案。例如,我刚刚了解了为什么salt->sha256哈希一次不够安全,以及如何处理密码以获得更安全的存储。让密码哈希更安全当然是个好主意,但使用salt->SHA-256是错误的选择 最佳实践是使用带有成本因子的密码哈希函数,这允许控制计算哈希所需的时间。好的算法是BCrypt、SCrypt、Argon2和PBKDF2。在另一篇文章中,我试图解释如何切换到新算法
像SHA-256这样的快速散列的问题是GPU难以置信的速度,人们可以用负担得起的硬件进行暴力操作。让密码散列更安全当然是个好主意,但使用盐腌SHA-256是错误的做法 最佳实践是使用带有成本因子的密码哈希函数,这允许控制计算哈希所需的时间。好的算法是BCrypt、SCrypt、Argon2和PBKDF2。在另一篇文章中,我试图解释如何切换到新算法
像SHA-256这样的快速散列的问题是GPU难以置信的速度,人们可以用价格合理的硬件进行暴力操作。很高兴能提供帮助。我无意中写了
sha1
,但我的意思是sha256
,所以用它更新了我的答案。也许我会将前两种解决方案结合起来,这样所有老用户的密码都会得到更好的保护,即使他们暂时不登录,同时在登录时逐渐将用户群移动到新表中,在新表中,密码只被散列一次。顺便说一句,您可能会在登录时得到更好的答案。外汇。我刚刚了解了单用sha256+散列的安全性和不安全性,以及如何安全地散列密码。答案中的注释链接和信息会更好,并简要说明了为什么即使使用一次或两次salt,也只对密码进行散列是不安全的,不应该这样做。这一点很好。我至少对回复进行了编辑,使其更加通用,以便更好地应用于存储的密码处理,同时建议不要只使用sha256+salt。最后,我建议现在在答案中加入security.stackexchange.com。很高兴为您提供帮助。我无意中写了sha1
,但我的意思是sha256
,所以用它更新了我的答案。也许我会将前两种解决方案结合起来,这样所有老用户的密码都会得到更好的保护,即使他们暂时不登录,同时在登录时逐渐将用户群移动到新表中,在新表中,密码只被散列一次。顺便说一句,您可能会在登录时得到更好的答案。外汇。我只是