Cara menggunakan nodejs hmac md5

Skip to content

Cara menggunakan nodejs hmac md5

  • Beranda
  • Fitur Lengkap
  • Harga
  • Private Cloud
  • Login
  • Coba Gratis

HMAC SHA256

HMAC SHA256Baskara Aji2019-03-01T14:39:46+07:00

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.

Page load link

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    The crypto.createHmac() method is used to create an Hmac object that uses the stated ‘algorithm’ and ‘key’. Syntax:

    crypto.createHmac( algorithm, key, options )

    Parameters: This method accept three parameters as mentioned above and described below:

    • algorithm: It is dependent on the accessible algorithms which are favored by the version of OpenSSL on the platform. It returns string. The examples are sha256, sha512, etc.
    • key: It is the HMAC key which is used to create the cryptographic HMAC hash. It returns string, Buffer, TypedArray, DataView, or KeyObject. And if it is a KeyObject, then its type must be secret.
    • options: It is optional parameter and used to control stream behavior. It returns an object.

    Return Type: It returns Hmac object. Below examples illustrate the use of crypto.createHmac() method in Node.js: Example 1: 

    javascript

    const crypto = require('crypto');

    const secret = 'GfG';

    const hash = crypto.createHmac('sha256', secret)

                       .update('GeeksforGeeks')

                       .digest('hex');

    console.log(hash);

    Output:

    a08116905e92633e4f30eefd1276206b259305c8783642fc5b7f51c089187939

    Example 2: 

    javascript

    const myfile = process.argv[1];

    const crypto = require('crypto');

    const fs = require('fs');

    const creathmac = crypto.createHmac('sha1', 'CS-Portal!');

    const readfile = fs.createReadStream(myfile);

    readfile.on('readable', () => {

      const data = readfile.read();

      if (data)

        creathmac.update(data);

      else

       {

        console.log("The hmac object returns:",

        `${creathmac.digest('hex')} ${myfile}`);

      }

    });

    console.log("Program done!");

    console.log();

    Output:

    Program done!
    The hmac object returns: 4605d44703c2620fc2574c9a9216bd3267457324 /run_dir/interp.js

    Reference: https://nodejs.org/api/crypto.html#crypto_crypto_createhmac_algorithm_key_options