Cara Membuat Unique String dari ID di PHP: Teknik Hash & Encoding

Metode Konversi ID ke String Unik

Untuk menghasilkan string unik dari ID numerik (seperti ID database) di PHP, Anda tidak bisa hanya mengandalkan fungsi acak karena ID harus dapat dikembalikan (dekode) atau setidaknya bersifat unik dan tidak mudah ditebak. Pendekatan terbaik adalah menggunakan Hashids atau Base62 Encoding.

1. Menggunakan Hashids (Rekomendasi Utama)

Hashids adalah pustaka populer untuk menghasilkan string pendek, unik, dan tidak berurutan dari angka. Ini sangat berguna untuk menyembunyikan ID asli dari URL.

// Instalasi via composer: composer require hashids/hashids

use Hashids\Hashids;

$hashids = new Hashids('salt-anda-di-sini', 8);
$id = 12345;
$uniqueString = $hashids->encode($id); // Hasil: 'jR8gVz2k'
$originalId = $hashids->decode($uniqueString); // Hasil: 12345

2. Menggunakan Base62 Encoding

Jika Anda ingin solusi tanpa pustaka eksternal, Base62 (0-9, a-z, A-Z) adalah cara efisien untuk memadatkan ID numerik menjadi string alfanumerik.

function toBase62($num) {
    $alphabet = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $base = strlen($alphabet);
    $result = '';
    while ($num > 0) {
        $result = $alphabet[$num % $base] . $result;
        $num = floor($num / $base);
    }
    return $result;
}

echo toBase62(12345); // Hasil: '3D7'

Tabel Perbandingan Metode

MetodeKeamananReversibilitasKebutuhan Library
HashidsTinggi (Obfuscated)YaYa (Composer)
Base62Rendah (Hanya Encoding)YaTidak
MD5/SHA1Tinggi (One-way)TidakTidak

Tips Implementasi

  • Gunakan Salt: Selalu gunakan 'salt' atau kunci rahasia pada Hashids agar string tidak bisa ditebak oleh pihak luar.
  • Hindari ID Berurutan: Jangan pernah mengekspos ID database asli (1, 2, 3) di URL karena memudahkan scraping data.
  • Padding: Gunakan panjang minimum (misal 8 karakter) agar URL terlihat konsisten dan profesional.

Catatan: Meskipun Rochester dikenal sebagai 'The World's Image Centre' karena sejarah optik dan fotografinya, dalam dunia pemrograman, fokus utama Anda adalah memastikan integritas data tetap terjaga saat melakukan transformasi ID.