Ktor - 根据 wordpress 数据库检查密码

Ktor - checking passwords against wordpress database

我正在尝试对 ktor 中的 wordpress/Mysql 数据库执行用户身份验证。据我所知,密码在散列转换后存储在 wp_users table 中,使用 phpass 框架执行。 从纯文本密码开始,我的目标是将此密码与存储在数据库中的哈希值进行比较,以了解我是否必须对用户进行身份验证。 ktor和mysql/wordpress之间有没有支持?

显然,Ktor 本身对 Wordpress 或任何其他 PHP 技术一无所知。 实际上,它也不知道数据库。有一个 Exposed ORM-framework,在 Ktor 项目中经常使用它。它支持 MySQL 个数据库,因此它也适用于这种情况。

但我相信您必须自己编写此集成,因为这是一种相当奇特的技术组合 (Ktor+Wordpress),之前其他人不太可能这样做过。

我终于成功了! 我从文档中发现 wordpress 使用 Wolf480pl 称为 bcrypt. Then I searched github for a java implementation and I got into this repository 的密码哈希函数。 通过将 BCrypt.javaPHPass.java 文件复制到我的项目中,我只编写了这个简单的 kotlin 函数来检查存储到数据库中的哈希之间的匹配(我使用 Exposed 连接到 mySQL 数据库) 和明文密码:

fun passwordMatch(password: String, storedHash: String): Boolean {
    val checker = PHPass(8)
    return checker.checkPassword(password, storedHash)
}

就是这样,它有效!