Не могу понять, почему:
Android Java:
private hash_hmac(String str, String secret){
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKey = new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256");
sha256_HMAC.init(secretKey);
String hash1 = Base64.encodeToString(sha256_HMAC.doFinal(str.getBytes("UTF-8")), 0);
return hash1;
}
Переменные:
str = "eyJoYXNoIjoic29tZVJlcUhhc2hTdHIiLCJhbnN3ZXIiOnRydWV9"
secret = "AusVwlqhJY4YvuCIdotMpduVWWQdiVnl"
Результат:
UuJhaD7sjLXUPN01JJWEcObIwDdLXHturBdSZFxKPxI=
и в PHP:
$str=base64_encode('eyJoYXNoIjoic29tZVJlcUhhc2hTdHIiLCJhbnN3ZXIiOnRydWV9');
$key='AusVwlqhJY4YvuCIdotMpduVWWQdiVnl';
print(base64_encode(hash_hmac('sha256', $str, $key,true)));
Результат:
AWFG4WXHtOToeN8d4J4Lt67u8VVa35AxBfIEsg31DhU=
Разные результаты. Не могу понять, почему. При этом в desktop JAVA совпадает с PHP, а в Android - нет.