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?