Saya mencoba menyandikan string dengan algoritma hash_hmac di Google Script tetapi hasilnya berbeda dari yang saya harapkan.

Google Skrip:

Utilities.base64Encode(Utilities.computeHmacSignature(Utilities.MacAlgorithm.HMAC_SHA_512, "hello", "key"));

Keluaran:

/warNnV3d4FcAI0yyOFKcFtOe/MQNRoGojthLcTHQz53V9IFJaVZO3ECDqLuFi0jEbJH6YVYYrJwEiQZZSwMkg==

Php:

echo hash_hmac("sha512", "hello", "key");

Ff06ab36757777815c008d32c8e14a705b4e7bf310351a06a23b612dc4c7433e7757d20525a5593b71020ea2ee162d2311b247e9855862b270122419652c0c92

Ada apa dengan GS? Apa yang saya lakukan salah?

0
Paolo Guerra 9 November 2017, 20:44

1 menjawab

Jawaban Terbaik

Baru saja mengalami masalah ini minggu lalu! GS base64 mengkodekan hasil biner mentah dari hash. Untuk melakukan ini di PHP, berikan nilai kebenaran untuk parameter ke-4 hash_hmac() lalu panggil base64_encode() pada hasilnya:

echo base64_encode(hash_hmac("sha512", "hello", "key", true));

Menghasilkan:

/warNnV3d4FcAI0yyOFKcFtOe/MQNRoGojthLcTHQz53V9IFJaVZO3ECDqLuFi0jEbJH6YVYYrJwEiQZZSwMkg==

Parameter ke-4:

mentah_output

Saat disetel ke TRUE, mengeluarkan data biner mentah. FALSE menghasilkan hexits huruf kecil.

0
Alex Howansky 9 November 2017, 17:53