Hashids GitHub: Pustaka Open Source untuk Enkode ID Angka

Hashids adalah pustaka kecil bersifat open source yang tersedia di GitHub untuk menghasilkan hash singkat yang unik dari angka-angka integer. Pustaka ini biasanya digunakan oleh para pengembang web untuk menyembunyikan ID database yang berurutan (seperti 1, 2, 3) dari URL publik agar tidak mudah ditebak atau dimanipulasi oleh pengguna. Repositori resmi utamanya dikelola di platform GitHub dengan dukungan berbagai bahasa pemrograman seperti JavaScript, PHP, Python, Ruby, Java, dan C#.

Informasi Utama Repositori Hashids di GitHub

Repositori pusat Hashids dapat ditemukan di bawah akun kreatornya, Ivan Akimov. Proyek ini sangat populer di kalangan pengembang karena tidak memerlukan basis data tambahan untuk memetakan ID; proses enkode dan dekode dilakukan secara algoritmik menggunakan matematika sederhana berbasis salt (garam unik) dan alfabet kustom.

Parameter Repositori Keterangan
Pembuat Utama Ivan Akimov
URL GitHub Utama github.com/ivanakimov/hashids
Lisensi MIT License (Bebas digunakan untuk komersial & pribadi)
Bahasa Utama Tersedia dalam JavaScript, PHP, Python, Ruby, Swift, Go, dll.
Fungsi Utama Mengubah integer (misal: 347) menjadi string (misal: yr8) dan sebaliknya.

Cara Kerja dan Implementasi Dasar

Hashids bukanlah algoritma enkripsi satu arah (seperti SHA-256 atau MD5) melainkan algoritma obfuscation atau penyembunyian. Artinya, string yang dihasilkan dapat didekode kembali menjadi angka aslinya oleh aplikasi Anda. Berikut adalah contoh implementasi dasar menggunakan bahasa pemrograman JavaScript (Node.js) yang bersumber langsung dari dokumentasi repositori GitHub mereka.

const Hashids = require('hashids');
const hashids = new Hashids('ini adalah salt rahasia saya', 8);

// Enkode angka tunggal
let id = hashids.encode(12345);
console.log(id); // Menghasilkan string acak, misal: "NkLqrO2g"

// Dekode string kembali ke angka
let numbers = hashids.decode("NkLqrO2g");
console.log(numbers); // [ 12345 ]

Kelebihan dan Keterbatasan Hashids

Sebelum mengintegrasikan Hashids ke dalam proyek perangkat lunak Anda, penting untuk memahami batasan fungsional dari pustaka ini agar tidak salah dalam menentukan arsitektur keamanan sistem.

Kelebihan

  • URL Bersih: Menggantikan ID angka yang panjang atau berurutan dengan string pendek yang estetis.
  • Dapat Dibalik (Reversible): Memungkinkan server menerjemahkan kembali string URL ke primary key database dengan cepat tanpa lookup tambahan.
  • Alphabet Kustom: Pengembang dapat mengubah karakter yang digunakan untuk menghindari bentukan kata-kata kasar (profanity filtering).

Keterbatasan

  • Bukan Enkripsi Keamanan Tinggi: Siapa pun yang memiliki kode sumber aplikasi atau mengetahui pustaka ini dapat mendekode string jika salt bocor. Jangan gunakan untuk data sangat sensitif seperti kata sandi.
  • Batasan Angka Negatif: Hashids dirancang khusus untuk angka bulat positif (unsigned integers).

Cara Mengunduh dan Memasang Hashids

Anda dapat menginstal Hashids langsung melalui manajer paket standar sesuai dengan bahasa pemrograman yang digunakan pada proyek Anda:

  • JavaScript/Node.js: npm install hashids
  • PHP (Composer): composer require hashids/hashids
  • Python: pip install hashids
  • Go: go get github.com/speps/go-hashids

Selalu kunjungi halaman resmi di GitHub untuk melihat pembaruan, catatan rilis (changelog), serta kontribusi dari komunitas pengembang global.