【发布时间】:2016-02-17 18:16:21
【问题描述】:
我有一个密码存储在数据库中,该密码使用 PHP 的 password_hash 散列算法加密。
例子:
password_hash("pass", PASSWORD_DEFAULT);
会产生哈希:
$2y$10$3e6a/J0xDd1LONdnbkp5nud.WwS3.gV3aHBTYX6r4Bq2BxZTjDCZu
来自 PHP 的文档:
PASSWORD_DEFAULT - 使用 bcrypt 算法(默认为 PHP 5.5.0)。请注意,此常量旨在随着 PHP 中添加新的和更强大的算法而随时间而变化。因此,使用此标识符的结果长度可能会随时间而变化。因此,建议将结果存储在可以扩展超过 60 个字符的数据库列中(255 个字符是一个不错的选择)。
PASSWORD_BCRYPT - 使用 CRYPT_BLOWFISH 算法创建散列。 这将使用 "$2y$" 生成标准 crypt() 兼容哈希 标识符。结果将始终是 60 个字符的字符串,或 FALSE 关于失败。支持的选项:
正如它所说的它使用 bcrypt 算法,是否有一种方法可以在我的 android 应用程序客户端中生成上面显示的相同哈希?
我已经尝试使用jBcrypt 来实现这一点,但没有结果。
【问题讨论】:
-
您为什么要尝试重现相同的密码哈希?
-
我需要能够检查密码是否正确,但目前密码正在“明文”发送,我想知道是否有一种方法可以重新创建存储的哈希在数据库中,并对其进行检查
-
意味着我将发送哈希而不是纯文本密码。要么,要么我可以使用加密,但我找不到足够安全的东西。
标签: android bcrypt php-password-hash