java - PHP 中使用 Java 进行 SHA-256 盐验证

标签 java php hash sha256

我系统上的用户在 Java 应用程序中注册(来源: https://github.com/madtomic/LogIt-1/tree/master/src/main/java/io/github/lucaseasedup/logit/security )并使用 SHA-256 和盐对密码进行哈希处理。我现在想在我的 WWW 页面上添加登录系统。但我无法验证密码。

示例用户:

  • 密码:测试
  • 盐:oqhyqTbtEXYYRf8r9jJn
  • 来自 JAVA 的哈希值: adf6a822c860ad7dc39eb035be1e362ad72f4535eed9a41dc8f99a122d78f5ef

PHP测试代码:

$_POST['salt'] = "oqhyqTbtEXYYRf8r9jJn";
$_POST['hash'] = "adf6a822c860ad7dc39eb035be1e362ad72f4535eed9a41dc8f99a122d78f5ef";
$_POST['pass'] = "test";


echo("<br>HASH_HMAC ".hash_hmac("sha256", $_POST['pass'], $_POST['salt']));

echo("<br>HASH ".hash("sha256", $_POST['salt']. $_POST['pass']));

echo("<br> HASH #2 ". hash('sha256', $_POST['salt'] . hash('sha256', $_POST['pass']) ));

echo('<br>Java hash: ' . $_POST['hash']);

结果:

  • HASH_HMAC cc3dcc320479034414506c4ad44fda205b4f5687ff988fa4316edb94d05364ff
  • 哈希b7d8154812a95e0fad70533feb8b1c8b3a53e9efcff936eb5c308d481b6594e6
  • 哈希#2 183d017d9169efbfd5f62ddfacd8d6ef631be287f17e9767fe3978bbc366444c
  • Java 哈希:adf6a822c860ad7dc39eb035be1e362ad72f4535eed9a41dc8f99a122d78f5ef

PHP 中的任何内容都与 Java 哈希匹配:( 我应该做什么?

最佳答案

我认为你可以使用 PHP hash函数并将您的盐与密码连接起来。

$salt = 'oqhyqTbtEXYYRf8r9jJn';
$pass = 'test';
echo hash('sha256', $pass . $salt);

输出:

adf6a822c860ad7dc39eb035be1e362ad72f4535eed9a41dc8f99a122d78f5ef

演示:https://eval.in/591374

关于java - PHP 中使用 Java 进行 SHA-256 盐验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37899561/

相关文章:

java - 如何检测字符串中的空格?

java - 如何将 Java 中的 URI 解析和解码为 URI 组件?

php - 使用 PHP 正则表达式删除独立数字

php - COMET 和 PHP 的解决方案

Perl:这段代码怎么可能有效?

ruby - 通过根据项目的属性对对象数组进行分组来构建哈希

java - 需要服务器和链接列表帮助

php - 如何使实际图像文件在使用 docker 运行的文件上传过程中持久存在?

security - 如何*正确*存储密码?

java - 递归幂函数给出了奇怪的答案