Cara menggunakan contoh hash_hmac php

Secara umum, hampir setiap panggilan web-service harus menyertakan beberapa variabel yang diperlukan untuk menambahkan informasi atau untuk proses validasi yang dikirimkan dalam HTTP Header, antara lain

Nama HeaderContoh Deskripsi ValueX-cons-id743627386consumer ID dari BPJS KesehatanX-Timestamp234234234timetampX-Signatureberbasis unix yang dihasilkanDogC5UiQurNcigrBdQ3QN5oYvXeUF5E82I/LHUcI9v0=tanda tangan yang dihasilkan dengan pola HMAC-256X-AuthorizationBasic Y29iYXcBwazp4Pola tanda tangan

  1. X-cons-id, adalah kode konsumen (pengakses layanan web). Kode ini akan diberikan oleh BPJS Kesehatan
  2. X-timestamp, adalah waktu yang akan dihasilkan oleh client ketika ingin memanggil setiap service. Format waktu ini ditulis dalam format waktu berbasis unix (berisi angka, bukan format tanggal sebagaimana mestinya). Format waktu menggunakan Coordinated Universal Time (UTC), dalam penggunaannya untuk mendapatkan timestamp, rumus yang digunakan adalah (local time in UTC timezone in second) - (1970-01-01 in second). contoh penggunaan di php yaitu.
    date_default_timezone_set('UTC'); 
    $tStamp = strval(time()-strtotime('1970-01-01 00:00:00'));
  3. X-signature, merupakan hasil pembuatan tanda tangan yang dibuat oleh client. Tanda tangan yang digunakan menggunakan pola HMAC-SHA256
  4. X-Authorization merupakan gabungan dari username dan password dari aplikasi yang akan dijembatani (PCare), dan untuk membangkitkan enkripsi dari otorisasi tersebut dapat menggunakan pola Base64 Basic.
    username : usernamePcare 
    password : passwordPcare 
    kdAplikasi : 095
    Authorization : Base64(username:password:kdAplikasi)
    _

Untuk dapat mengakses web-service dari BPJS Kesehatan (penyedia layanan), penelepon web service (konsumen layanan) akan mendapatkan

  • ID Konsumen
  • Rahasia Konsumen

Informasi Rahasia Konsumen hanya disimpan oleh layanan konsumen. Tidak dikirim ke server web-service, hal ini untuk menjaga keamanan yang lebih baik. Sedangkan kebutuhan Rahasia Konsumen ini adalah untuk membangkitkan Tanda Tangan (X-signature). lihat cetakan sumber?

consumerID : 1234 
consumerSecret : pwd 
timestamp : 433223232 
variabel1 : consumerID & timestamp 
variabel1 : 1234&433223232
Signature : HMAC-256(value:key)
value : variabel1
key : consumerSecret
Signature : HMAC-256(variabel1:consumerSecret)

ALAT PENGUJIAN LAYANAN WEB

Sebelum mengakses layanan web melalui aplikasi, alat tambahan (add-ons) dapat digunakan. Pengaya ini dapat diperoleh dari perangkat lunak tambahan atau ekstensi dari masing-masing browser favorit Anda. Berikut ini link ke aplikasi Advanced Rest Client

Cara menggunakan contoh hash_hmac php

TANDA TANGAN

Metode signature yang digunakan adalah menggunakan HMAC-SHA256, dimana parameter saat generate signature adalah parameter message dan key. Berikut adalah contoh hasil pembangkitan HMAC-SHA256

Fasad Hash Laravel menyediakan hashing Bcrypt dan Argon2 yang aman untuk menyimpan kata sandi pengguna. Jika Anda menggunakan salah satu starter kit aplikasi Laravel, Bcrypt akan digunakan untuk registrasi dan autentikasi secara default

Bcrypt adalah pilihan tepat untuk hashing kata sandi karena "faktor kerjanya" dapat disesuaikan, yang berarti bahwa waktu yang diperlukan untuk menghasilkan hash dapat ditingkatkan seiring peningkatan daya perangkat keras. Saat hashing kata sandi, lambat itu bagus. Semakin lama suatu algoritme meng-hash kata sandi, semakin lama waktu yang dibutuhkan pengguna jahat untuk menghasilkan "tabel pelangi" dari semua kemungkinan nilai hash string yang dapat digunakan dalam serangan brute force terhadap aplikasi

Konfigurasi

Driver hashing default untuk aplikasi Anda dikonfigurasi dalam file konfigurasi config/hashing.php aplikasi Anda. Saat ini ada beberapa driver yang didukung. Bcrypt dan Argon2 (varian Argon2i dan Argon2id)

Penggunaan Dasar

Kata Sandi Hashing

Anda dapat melakukan hash kata sandi dengan memanggil metode make pada fasad Hash

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Hash;

class PasswordController extends Controller

* Update the password for the user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update(Request $request)

// Validate the new password length...

'password' => Hash::make($request->newPassword)

_

Menyesuaikan Faktor Kerja Bcrypt

Jika Anda menggunakan algoritme Bcrypt, metode make memungkinkan Anda mengelola faktor kerja algoritme menggunakan opsi

$hashed = Hash::make('password', [

0;

$hashed = Hash::make('password', [

Menyesuaikan Faktor Kerja Argon2

Jika Anda menggunakan algoritme Argon2, metode make memungkinkan Anda mengelola faktor kerja algoritme menggunakan opsi

$hashed = Hash::make('password', [

2,

$hashed = Hash::make('password', [

3, dan

$hashed = Hash::make('password', [

4;

$hashed = Hash::make('password', [

Catatan
Untuk informasi lebih lanjut tentang opsi ini, silakan merujuk ke dokumentasi PHP resmi tentang hashing Argon

Memverifikasi Bahwa Kata Sandi Cocok Dengan Hash

Metode

$hashed = Hash::make('password', [

_5 yang disediakan oleh fasad Hash memungkinkan Anda untuk memverifikasi bahwa string teks biasa yang diberikan sesuai dengan hash yang diberikan

if (Hash::check('plain-text', $hashedPassword)) {

Menentukan Jika Kata Sandi Perlu Diulang

Metode

$hashed = Hash::make('password', [

_7 yang disediakan oleh fasad Hash memungkinkan Anda untuk menentukan apakah faktor kerja yang digunakan oleh hasher telah berubah sejak kata sandi di-hash. Beberapa aplikasi memilih untuk melakukan pemeriksaan ini selama proses autentikasi aplikasi