【发布时间】:2014-01-24 01:38:48
【问题描述】:
我已经使用 PHP crypt 函数对密码进行哈希处理。 例如:
<?php
$hash = '$2y$08$ffWmSGZOM5pNJpHNvpqMa.z01BL25WGoXViaWYhxS0WRaftgAxhkC';
$test = crypt("test", $hash);
$pass = $test == $hash;
echo "Test for functionality of compat library: " . ($pass ? "Pass" : "Fail");
echo "\n";
现在:
如果我使用 php bcrypt password_hash() 函数,我会得到以下输出:
密码:测试
使用password_hash() 的加密密码是:
$2y$08$ffWmSGZOM5pNJpHNvpqMa.z01BL25WGoXViaWYhxS0WRaftgAxhkC
现在我想在 Android Java 中获得相同的输出。 我的问题是:
- 我怎样才能做到这一点?
- android java中是否有任何类文件或默认函数可以用来实现这一点?
- 我必须编写自定义函数来实现这一点吗?
我也想用java解密密码。
任何带有示例的答案将不胜感激。提前谢谢大家。
【问题讨论】:
-
首先,如果您使用相同的散列算法,则返回相同的语言并不重要。其次,你不能真正取消哈希。
-
您不能取消散列哈希,您只能将一个哈希与另一个匹配。如果您可以使用更改后的密码“取消”某些内容,那么您就是在解密它,这意味着它是加密文本,而不是散列。
-
您好 jonast92,感谢您的回复。但这与我的问题没有任何意义!?
-
如果您对该主题有误解,那么只要我不将其作为答案发布就值得发表评论,即使它不是您知道的问题的解决方案,如果它可能是一个解决方案对于您不知道的问题,在这种情况下是散列和加密的含义。无论如何,我看不出答案中没有答案;他们是,如果您使用完全相同的算法,那么您将获得匹配的哈希值,这就是您想要的,您是否尝试过使用相同的算法但使用不同的语言创建哈希值,然后匹配结果?
-
您好 Jonast92 ..感谢您的回复。请查看此段:“现在:如果我使用 php bcrypt passowrd_hash() 函数,我会得到以下输出:密码:使用 passowrd_hash() 测试 bcrypted 密码是:$2y$08$ffWmSGZOM5pNJpHNvpqMa.z01BL25WGoXViaWYhxS0WRaftgAxhkC”。我在 php 中使用 bcrypt 算法。我想在java中相同。那么我怎样才能在 Java 中实现同样的效果!?