对于一个有趣的项目,我想支持 SASL 机制进行身份验证,尤其是 PLAIN 和 DIGEST-MD5。
我的问题是:如果我需要支持这两种身份验证方式,如何安全地存储用户密码?
仅使用 PLAIN 身份验证会非常简单,我只需使用 bcrypt 存储密码,然后使用 bcrypt_compare 函数将用户提交的密码与存储的密码进行比较。
但是,当 DIGEST-MD5 也应该是可能的时候,我怎样才能安全地存储密码呢?我是否应该存储整个计算的响应并将其也用于 PLAIN 比较?还是有其他方法?
//编辑:关于“有趣”的项目。目前这是一个有趣的项目,但没有人知道它是否会在某个时候成为一个非有趣的项目。而且我不想仅仅因为它是一个有趣的项目而降低安全性..