来自 UserHashedTableAuth 的 Ktor 基本身份验证

Mar*_*ahn 2 authentication base64 sha256 kotlin ktor

在 Ktor 网站https://ktor.io/samples/feature/auth.html 的这个示例中,他们使用帐户“test”和密码“test”作为示例。

@UseExperimental(KtorExperimentalAPI::class)
val hashedUserTable = UserHashedTableAuth(
    getDigestFunction("SHA-256") { "ktor${it.length}" },
    table = mapOf(
        "test" to Base64.getDecoder().decode("GSjkHCHGAxTTbnkEDBbVYd+PUFRlcWiumc4+MWE9Rvw=") // sha256 for "test"
    )
)
Run Code Online (Sandbox Code Playgroud)

我需要创建另一个条目,但我无法弄清楚他们是如何获得该哈希值的。我试图对“测试”这个词进行 sha256,无论是否加盐,都试图对结果进行 base64...没有任何匹配的哈希值,所以我无法创建另一个用户。

任何人都可以在这里启发我如何使用该代码创建兼容的哈希?

Mar*_*ahn 6

经过大量尝试和错误......这是复制它的方法:

echo -n ktor4test | openssl dgst -binary -sha256 | openssl base64
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助未来的人不要像我一样浪费时间。