Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP';Android中的密码散列_Android_Bcrypt_Php Password Hash - Fatal编程技术网

如何使用PHP';Android中的密码散列

如何使用PHP';Android中的密码散列,android,bcrypt,php-password-hash,Android,Bcrypt,Php Password Hash,我有一个存储在数据库中的密码,它是使用PHP的password\uhashhash算法加密的 例如: password_hash("pass", PASSWORD_DEFAULT); 将生成哈希: $2y$10$3e6a/J0xDd1LONdnbkp5nud.WwS3.gV3aHBTYX6r4Bq2BxZTjDCZu 从PHP文档中: 密码\u默认值-使用bcrypt算法(从PHP 5.5.0开始默认)。请注意,这个常量的设计目的是随着新的、更强的算法添加到PHP中,随着时间的推移而改变。

我有一个存储在数据库中的密码,它是使用PHP的
password\uhash
hash算法加密的

例如:

password_hash("pass", PASSWORD_DEFAULT);
将生成哈希:

$2y$10$3e6a/J0xDd1LONdnbkp5nud.WwS3.gV3aHBTYX6r4Bq2BxZTjDCZu 
从PHP文档中:

密码\u默认值-使用bcrypt算法(从PHP 5.5.0开始默认)。请注意,这个常量的设计目的是随着新的、更强的算法添加到PHP中,随着时间的推移而改变。因此,使用此标识符的结果长度可能会随时间而变化。因此,建议将结果存储在可扩展到60个字符以上的数据库列中(最好选择255个字符)

密码\u BCRYPT-使用CRYPT\u BLOWFISH算法创建散列。 这将使用“$2y$”生成与crypt()兼容的标准哈希 标识符。结果将始终是一个60个字符的字符串,或FALSE 一旦失败。支持的选项:

正如它所说的,它使用bcrypt算法,在我的android应用程序客户端中是否有一种方法可以生成上面所示的相同哈希


我已经尝试过在没有结果的情况下使用实现此功能。

我不明白为什么您需要在移动应用程序中复制相同的哈希值,但我想,您可以尝试以下方法:

您可以使用另一种加密方式从您的移动应用程序发送密码,在php服务器中解密密码并使用密码验证

我认为你的服务器上有一个密码盐来增强密码的强度


希望这有帮助是的,你可以在Android端重新创建哈希,但这并不能解决你的加密问题。如果您以明文形式发送散列,攻击者只需重播散列即可访问您的系统,而无需知道密码

password_散列函数的输出在实际散列之前包括算法、成本选项和salt(2y告诉您算法,10是示例中的成本选项)。您需要通过提供这些参数将其输入到Android端的crypt函数中。通常,您只需提供整个输出作为crypt函数的输入,但这是您试图验证的令牌,因此您需要根据所使用的算法,仅提取salt所需的部分

最简单的方法是使用现有的摘要实现,如,并使用服务器和客户端支持的密码,如CRYPT_SHA256或CRYPT_SHA512


但重申一下,您应该正确使用加密

为什么要复制相同的密码散列?我需要能够检查密码是否正确,但目前正在“清除”发送密码,我想知道是否有办法重新创建存储在数据库中的散列,并检查这意味着我将发送散列而不是纯文本密码。或者我可以使用加密,但我找不到足够安全的东西。我可以使用什么加密算法?我用过谷歌,但找不到足够安全的东西。你用的是HTTPS连接吗?这将非常有帮助。你也可以试试,也可以看看@mattm-answer。我今天很忙,但我稍后会尝试在这里发布一些代码,好吗?这是一个计算A2项目,所以不,我没有使用https连接