我有一个数以千计的md5加密密码的数据库,我需要迁移到sha256。通过使用md5访问保留旧密码并使用sha256加密新密码来实现这一点最安全的方法是什么?谢谢。如何从md5迁移到sha256加密
回答
除了为sha256创建新列,您还可以使用现有列。因为sha256散列比md5散列长很多,所以可以通过查看散列长度来检测散列算法。
我也这么认为。只是对安全性有怀疑。 – afazolo 2012-03-05 18:45:51
我想为sha256散列添加一个新列。这样,您可以在登录时检查新列的空值,并在有权访问明文密码时保存新的哈希值。
如果可能,请使用PBKDF2或bcrypt。平原SHA-2速度太快。
如果你不能使用其中任何一个,那么你至少应该遍历SHA-256两三千次密码猜测攻击减缓:
var hash = SHA256(SHA256(salt)+password)
for(int i=0; i<10000; i++)
hash = SHA256(hash);
return hash;
请记住,每个用户都需要有一种不同的盐,通常与密码散列一起存储。每个应用盐是不够的。
对于升级,我会使用旧的散列作为新功能的输入。这样,现有的哈希会获得升级的大部分安全性提升,而无需用户登录。不要保留旧的MD5散列。
然后在每个用户的第一次登录时,将他的哈希值升级到不再使用MD5的全新哈希值。
如果给出散列,即使使用MD5,仍然很难找到生成该散列的相应字符串。通常使用反向查找表或暴力破解散列,通过向输入添加新字母来快速降低概率,因此将长随机盐连接到密码已足够。 – Calmarius 2015-05-30 14:24:50
- 1. 从md5更改为sha256
- 2. AES加密,SHA256
- 3. 从Laravel 5.2迁移加密密钥到5.3
- 4. 在erlang sha256加密
- 5. 从Django到Mysql的密码迁移
- 6. 迁移密码加密模式
- 7. mysql的密码()加密的密码到Oracle迁移
- 8. NIS yppasswd哈希从crypt到md5的迁移
- 9. 如何将密码从md5转换成laravel加密方法
- 10. 如何从自定义主键迁移到默认密码
- 11. 加密和解密md5
- 12. 如何从Google电子邮件迁移API迁移到Gmail API?
- 13. 从MD5更改PostgreSQL密码加密到SHA
- 14. 如何使用MD5加密字符串?
- 15. 将Magnolia CMS加密的密码迁移到Joomla CMS?
- 16. 使用password_hash和SHA256加密和解密
- 17. 使用sha256密码AES加密
- 18. 使用MD5的API签名具有as sha256的密钥
- 19. 如何从MD5恢复密码?
- 20. 如何从ms sql迁移到mysql
- 21. 如何从AuthSub迁移到Google OAuth?
- 22. 如何从Git-Annex迁移到Git LFS
- 23. 如何将CXF从2.7迁移到3.0?
- 24. 如何从SourceGear Vault迁移到TFS?
- 25. 如何从MySQL 5.1迁移到5.5?
- 26. 如何从virtualenv迁移到buildout?
- 27. 如何从PostgreSQL迁移到MySQL?
- 28. 如何从MiaCMS迁移到Joomla 1.5?
- 29. 如何从C++ COM迁移到C++ CLI
- 30. 如何从eclipse迁移到android studio
当你在这里,你可能想迁移到PBKDF2和盐。您将不得不存储salt和PBKDF2结果而不是密码。 SHA-256(这是一种安全散列,不是一种加密类型)仍然可以用于彩虹表等。 – 2012-03-05 22:24:32
有趣!是否有任何vbscript(经典的asp)基于盐的PBKDF2实现? – afazolo 2012-03-06 01:11:42
在谷歌的帮助下,我了解到,我可以为每个用户使用随机生成的字符串作为盐。要检查用户提供的密码是否有效,我会结合Salt提供的密码,取出散列,并将其与存储在数据库中的散列进行比较,对吧?我的问题是:一个盐可以是一个MD5加密字符串? – afazolo 2012-03-06 03:27:36