Genau die gleiche hashing in java, PHP mit Salz? (SHA-256)

Kann ich einfach den hash in PHP mit einer Salz:

$orig_pw = "abcd";
$salt = 5f8f041b75042e56;
$password = hash('sha256', $orig_pw . $salt);

(Dies ist nicht wie ich es umsetzen, das ist nur ein Beispiel. Salz ist für jeden anders)

Und mit diesem, wird das gespeicherte Passwort ist:

bc20a09bc9b3d3e1fecf0ed5742769726c93573d4133dbd91e2d309155fa9929

Aber wenn ich versuche das selbe in Java, bekomme ich ein anderes Ergebnis. Ich habe versucht String password = "abcd";

byte[] salt = hexStringToByteArray("5f8f041b75042e56");

try {
    System.out.println(new String(getHash(password, salt)));
} catch (NoSuchAlgorithmException e1) {
    e1.printStackTrace();
}

Und die beiden Methoden:

public byte[] getHash(String password, byte[] salt) throws NoSuchAlgorithmException {
        MessageDigest digest = MessageDigest.getInstance("SHA-256");
        digest.reset();
        digest.update(salt);
        try {
            return digest.digest(password.getBytes("UTF-8"));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }


public byte[] hexStringToByteArray(String s) {
        int len = s.length();
        byte[] data = new byte[len / 2];
        for (int i = 0; i < len; i += 2) {
            data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
                                 + Character.digit(s.charAt(i+1), 16));
        }
        return data;
    }

Ist das Ergebnis:

1¶ĆĽëüFd?[$?¶»_9ËZ»ç¶S‘Ęŗש

Welche codiert hex ist noch nicht einmal nah:

2fac31b6434c14ebfc46643f5b243fb6bb5f39cb5abb10e7b65391454c97d7a90d0a

Kann mir jemand helfen mit diesem?

Schreibe einen Kommentar