2

我有一个关于 wordpress 下的密码管理的奇怪问题。

我想做的事:我有一个 wordpress 网站,用户可以选择在服务器上注册一个单独的应用程序,如果他们愿意的话。每个用户都有自己的用户名和密码,使用wordpress协议保存;该应用程序还需要自己的用户名/密码,并且可以通过 SOAP 设置它们。我想允许每个用户使用他们的 wordpress 用户名和密码登录应用程序。

我感到困惑的地方:检索用户名是一个简单的数据库查询,所以那里没有问题。然而,wordpress 正确地加密了数据库中的密码。我正在寻找一种安全的方法来自动从数据库中检索密码并将其传递给应用程序以在用户注册时创建一个帐户。

任何想法,将不胜感激。

4

2 回答 2

0

通常,密码以散列形式存储在 MySQL 数据库中。您需要确定您的辅助应用程序是否以与 WordPress 相同的格式存储它们。从 3.6 版开始,它使用基于名为“ phpass ”的第 3 方库的内部散列机制。

也就是说,如果您的辅助应用程序已经使用 phpass 或可以修改为使用 phpass,您可以简单地在辅助应用程序中创建必要的数据库记录,并将 WordPress 生成的密码哈希直接复制到它。

如果应用程序不使用 phpass 生成的哈希值,您可以尝试编写一个 WordPress 插件来“抄送”另一个应用程序的数据库,并使用它熟悉的密码哈希值。请注意不要以任何方式以明文形式记录密码。

如果此辅助应用程序使用不同的密码保护方法,您将无法(通过正常方式)(也不应尝试,为了您自己的保护)对密码进行逆向工程以重新散列或以其他方式加密它们。

考虑到所有这些信息——我将亲自探索使用外部身份验证模型/凭据存储,如 Facebook、Google 等——最有可能使用OpenID身份验证范式。

于 2013-09-27T01:11:36.150 回答
0

您不会检索现有 Wordpress 用户的密码。这些是散列的,未加密的,散列(通常)在设计上是不可逆的。

我建议为 Wordpress 站点和您的单独应用程序(例如OAuth )实施通用授权机制。这应该比破解 WordPress 密码存储的内在特性更好,因为您获得了更多的灵活性,不需要访问 WordPress 的敏感数据并且不会依赖于实现(密码存储机制往往会改变)

于 2013-09-27T01:02:30.387 回答