繁体   English   中英

如何从md5迁移到sha256加密

[英]How to migrate from md5 to sha256 encryption

我有一个包含数千个md5加密密码的数据库,我需要迁移到sha256。 通过保留具有md5访问权限的旧密码和具有sha256加密的新密码,最安全的方法是什么? 谢谢。

除了为sha256创建新列之外,您还可以将现有列用于这两个列。 因为sha256哈希比md5哈希长得多,所以您可以通过查看哈希的长度来检测哈希算法。

如果可能,请使用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的全新哈希。

我将为sha256哈希添加一个新列。 这样,您只需在登录时检查新列中是否为null,并在可以访问纯文本密码时保存新的哈希即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM