在数据库中存储用户密码时,我决定放弃 md5() 作为密码加密算法,转而使用phpass库。
在使用 md5 的系统上,有一个生产/开发二元组是没有问题的,因为生成的哈希是相同的。因此,如果我在其中任何一个中创建了一个测试用户,那么相同的密码在另一个环境中也可以使用。
据我所知,这对于其他类型的散列算法来说是不一样的,因为 phpass(或其内部 php 函数)会创建与平台相关的散列(我是散列/加密新手)。
我的问题是,应该如何处理这种情况?prod/dev 中的不同数据库?但是如果“楼上”决定我们应该将我们的 Web 应用程序(连同它的 DB)移动到另一台服务器上——哈希密码现在不会无效——因为 phpass 会为相同(旧)密码创建不同的哈希值吗?
后期编辑:
好吧,我没有费心检查生产哈希的开发哈希。尽管它们不同,但它们的比较结果是“真实的”,就像“它们是等效的”一样。我想,如果哈希值不同,它们就不匹配(如 md5)。