我的项目一直在尝试使用scrypt实现凭据检查器。我们已经尝试实现我们自己的凭证和检查器对象,但是我们在让 pb 使用它们时遇到了很多麻烦。
Pb 似乎被硬编码为通过网络使用 MD5 哈希,这在我们的实现中绝对行不通;我们没有办法在服务器端以明文形式获取正确的密码,因为我们使用的是 scrypt,所以我们需要一种方法来传输密码以明文形式进行验证。我们已经尝试将twisted.cred.credentials.UsernamePassword 与我们的凭证检查器一起使用,但它似乎并没有进入服务器。(我们仍然得到 _PortalAuthChallenge 代替)
http://twistedmatrix.com/trac/ticket/4398的票证似乎表明需要 PBServerFactory 子类才能支持 pb 中的自定义凭据检查器,但到目前为止,我完全无法弄清楚要覆盖什么为了使它使用不同的 ICredentials 实现。有没有关于如何让 pb 使用不同的凭证类的示例(甚至只是文档)?