- 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="//cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/hmac-sha256.js"></script> <script src="//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 linkView Discussion
Improve Article
Save Article
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:
a08116905e92633e4f30eefd1276206b259305c8783642fc5b7f51c089187939Example 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.jsReference: //nodejs.org/api/crypto.html#crypto_crypto_createhmac_algorithm_key_options