gpt4 book ai didi

passwords - 如何将密码哈希从 MD5 转换为 SHA?

转载 作者:行者123 更新时间:2023-12-02 19:45:57 26 4
gpt4 key购买 nike

我有一个旧应用程序,它的用户密码以 MD5 哈希值存储在数据库中。我想用 SHA-2 系列中的内容替换它。

我想到了两种可能的方法来实现这一目标,但两种方法看起来都相当笨拙。

1) 添加 bool “标志”字段。此后用户第一次进行身份验证时,将 MD5 密码哈希替换为 SHA 密码哈希,并设置标志。然后我可以检查该标志以查看密码哈希是否已转换。

2) 添加第二个密码字段来存储 SHA 哈希值。此后用户第一次进行身份验证时,使用 SHA 对密码进行哈希处理并将其存储在新字段中(可能同时删除其 MD5 哈希值)。然后我可以检查SHA字段是否有值;这基本上成为我的旗帜。

无论哪种情况,对于不经常登录的用户来说,MD5 身份验证都必须保留一段时间。任何不再活跃的用户将永远不会切换到 SHA。

有更好的方法吗?

最佳答案

本质上是一样的,但可能比添加额外的字段更优雅:在 Django 中的默认身份验证框架中,密码哈希值存储为如下构造的字符串:

hashtype$salt$hash

哈希类型是 sha1 或 md5,盐是一个随机字符串,用于对原始密码加盐,最后是哈希本身。示例值:

sha1$a1976$a36cc8cbf81742a8fb52e221aaeab48ed7f58ab4

关于passwords - 如何将密码哈希从 MD5 转换为 SHA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1381448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com