Base64_encode różni się między Javą a PHP

Oto mój problem:

Mam funkcję JAVA do generowania zaszyfrowanego łańcucha. Muszę zrobić to samo w PHP.

Moja funkcja Java:

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;
}

Moja funkcja PHP:

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

Zwracana wartość dwóch funkcji nie jest taka sama. Zauważyłem, że przed kodowaniem do bazy 64 obie funkcje mają ten sam rezultat. Dla mnie problem nie polega na generowaniu klucza, ale na kodowaniu.

Czy ktoś może mi pomóc?

questionAnswers(1)

yourAnswerToTheQuestion