Base64_encode diferente entre Java e PHP

Aqui está o meu problema:

Eu tenho uma função JAVA para gerar uma string criptografada. Eu tenho que fazer a mesma coisa no PHP.

Minha função 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;
}

Minha função PHP:

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

O valor de retorno das duas funções não é o mesmo. O que eu notei é que antes da codificação para a base 64, ambas as funções têm o mesmo resultado. Então, para mim, o problema não está na geração da chave, mas na codificação.

Alguém pode ajudar por favor?

questionAnswers(1)

yourAnswerToTheQuestion