Base64_encode unterscheidet sich zwischen Java und PHP

Hier ist mein Problem:

Ich habe eine Java-Funktion, um eine verschlüsselte Zeichenfolge zu generieren. Ich muss dasselbe in PHP machen.

Meine Java-Funktion:

String generateSignature () {
    byte[] Sequence = ("hello").getBytes("UTF-8");
    Mac HMAC = Mac.getInstance("HMACSHA256");
    HMAC.init("SECRET_KEY");
    byte[] Hash = HMAC.doFinal(Sequence);
    String Signature = new String(Base64.encodeBase64(Hash));
    return Signature;
}

Meine PHP-Funktion:

function generateSignature() {
    $sequence = "hello";
    $encrypted = hash_hmac('sha256', $sequence, "SECRET_KEY");
    return base64_encode($encrypted);
}

Der Rückgabewert der beiden Funktionen ist nicht gleich. Was mir aufgefallen ist, dass vor der Codierung auf Basis 64 beide Funktionen das gleiche Ergebnis haben. Für mich liegt das Problem also nicht in der Generierung des Schlüssels, sondern in der Codierung.

Kann jemand bitte helfen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage