【发布时间】:2017-06-04 17:15:46
【问题描述】:
我有一个带有用户表的非常旧的 Perl CGI 系统。密码使用crypt 函数存储为计算的哈希值。我希望将系统迁移到 Django,并且我想在使用 Django 表结构时保留用户数据。
一种选择是将所有用户/密码数据复制到auth_user 表并使用自定义身份验证功能,因为我有现有的密码哈希。
我有更好的选择吗?
如果我选择此选项,那么如何实施?
【问题讨论】:
-
你的方法听起来很合理。如果您无法再次将它们取出,请执行此操作。您还可以添加一个标记来记住哪些密码是旧的,然后在用户登录时逐个升级密码并使用更现代的哈希算法。
-
@GerhardBarnard 非常古老的代码与问题无关。他们不是在问如何翻译它。这个问题是关于过程的,我相信这有点离题。也许它更适合Software Engineering,尽管我在建议时通常是错误的,因为我不常去那个网站。第二部分如何实现肯定是题外话,因为我们不是代码编写服务。
-
@simbabque 我确实考虑过在第一次使用密码时升级密码。 “如何”部分是 Django 特定的。像我需要重写的方法吗?我在这里有一个参考,我可以看看。谢谢
-
@user2125853:“我有更好的选择吗?”你认为什么是“更好的”。您提出的解决方案有什么问题?正如 simbabque 所说,这是相当离题的,因为除了非常广泛的意义之外,您没有编程问题。如果没有原始密码的副本,您将无法默默地“升级”它们。
-
@Borodin 我不是在寻求广义上的选择。我对 Django 不太熟悉。如果 Django 有一个选项(例如使用现有的用户表而不是 auth_user),我正在寻找什么。我很欣赏这里提供的见解。