相关疑难解决方法(0)

Java SHA256向PHP SHA256输出不同的哈希值?

PHP代码:

echo hash('sha256', 'jake');

PHP输出:

cdf30c6b345276278bedc7bcedd9d5582f5b8e0c1dd858f46ef4ea231f92731d

Java代码:

String s = "jake";
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(s.getBytes(Charset.forName("UTF-8")));
byte[] hashed = md.digest();
String s2 = "";
for (byte b : hashed) {
    s2 += b;
}
System.out.println(s2);
Run Code Online (Sandbox Code Playgroud)

Java输出:

-51-1312107528211839-117-19-57-68-19-39-43884791-1141229-4088-12110-12-223531-11011529

我曾预料到两者会返回相同的结果.显然,事实并非如此.我怎样才能让两者相匹配或者不可能?

编辑:我犯了一个错误,认为我现在已经回答了这个问题.

php java hash sha256

8
推荐指数
2
解决办法
1万
查看次数

MySQL SHA256和Java MessageDigest SHA-256不匹配

我一直在尝试加密一个项目的一些用户密码,但我似乎无法让它正常工作.我决定使用SHA-256算法,当我使用Sha2向MySQL引入密码时(例如,256)它为加密密码添加了两个零.在Java中,我使用来散列程序中的文本,但无法获得相同的结果.

    try {
        MessageDigest digest = MessageDigest.getInstance("SHA-256");
        byte[] hash = digest.digest("ContrasenhaPassword".getBytes("UTF-8"));

        StringBuilder hexString = new StringBuilder();
        for (int i: hash) {
            hexString.append(Integer.toHexString(0XFF & i));
        }
        String Hashed = new String(hexString);
        System.out.println(hexString);
        System.out.println(Hashed);
        // Below, MySQL Output for SHA2('ContrasenhaPassword',256)
        System.out.println("d17bf0da90f56b8fc627bac6523ffd284aa0d82c870e1a0428274de048f49d78");
        System.out.println(Hashed.equals(hexString));
        } catch (Exception e) {
        e.printStackTrace();
        }
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

        d17bf0da90f56b8fc627bac6523ffd284aa0d82c87e1a428274de048f49d78
        d17bf0da90f56b8fc627bac6523ffd284aa0d82c87e1a428274de048f49d78
        d17bf0da90f56b8fc627bac6523ffd284aa0d82c870e1a0428274de048f49d78
        false 
        BUILD SUCCESSFUL (total time: 0 seconds)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

java mysql encryption comparison sha256

3
推荐指数
1
解决办法
2153
查看次数

标签 统计

java ×2

sha256 ×2

comparison ×1

encryption ×1

hash ×1

mysql ×1

php ×1