HMACSHA256 di signature API Accurate Online

HMACSHA256 adalah fungsi Hash yang digunakan saat membuat signature di API Accurate Online. Fungsi HMACSHA256 sudah tersedia di berbagai Bahasa Pemrograman baik secara built-in maupun lewat library tambahan.

Saat digunakan untuk membuat Signature, fungsi ini di jalankan dengan menggunakan Signature Secret sebagai nilai Key nya.

Hasil dari fungsi HMACSHA256 adalah data binary, namun yang digunakan sebagai signature adalah Base64 Encode dari data binary tersebut.

Pemrograman PHP

Pada bahasa pemrograman PHP fungsi ini sudah tersedia secara built-in lewat fungsi hash_hmac yang bisa dipanggil dengan parameter sha256. Berikut contoh penggunaannya :

<?php
    $data = "...";
    $signatureSecretKey = "...";
 
    $hash = hash_hmac('sha256', $data, $signatureSecretKey, true );
    $signature = base64_encode($hash);
 
    echo $signature;
?>

Pemrograman Javascript / NodeJS

Untuk bahasa pemograman Javascript fungsi HMACSHA256 tersedia di library CryptoJS. Berikut contoh penggunaannya pada NodeJS :

var CryptoJS = require("crypto-js");

var data ='....';
var signatureSecret = '....';

var hash = CryptoJS.HmacSHA256(data, signatureSecret);
var signature = CryptoJS.enc.Base64.stringify(hash);

console.log(signature);

Berikut contoh penggunaan pada file HTML :

<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/hmac-sha256.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/components/enc-base64-min.js"></script>
 
<script>
    var data = '...';
    var signatureSecret = '...';
 
    var hash = CryptoJS.HmacSHA256(data, signatureSecret);
    var signature = CryptoJS.enc.Base64.stringify(hash);
 
    document.write(signature);
</script>

Pemrograman Java

Untuk bahasa pemrograman Java tidak perlu tambahan library . Berikut contoh penggunaannya :

package com.example;
 
 
import java.util.Base64;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
 
public class DemoHMACSHA256 {
    public static void main(String[] args) {
        try {
            String data = "...";
            String signatureSecret = "...";
 
            Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
            SecretKeySpec secret_key = new SecretKeySpec(signatureSecret.getBytes(), "HmacSHA256");
            sha256_HMAC.init(secret_key);
 
 
            byte[] hash = sha256_HMAC.doFinal(data.getBytes());
            String signature = Base64.getEncoder().encodeToString(hash);
 
 
            System.out.println(signature);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Bahasa Pemrograman Lain

Fungsi ini juga tersedia pada bahasa pemogramana lainnya seperti (C#, C++, Python, Ruby, dsb.) dan dapat dapat dengan mudah dicari menggunakan google search.