Cara Mengetahui Jenis Hashing Password Pada Project PHP Dengan Melihat Source Code

Pendahuluan

Hashing password adalah teknik keamanan yang digunakan untuk menyimpan kata sandi dalam bentuk terenkripsi sehingga sulit ditebak oleh pihak yang tidak berwenang. Dalam pengembangan aplikasi PHP, ada berbagai metode hashing yang digunakan untuk mengamankan password pengguna. Artikel ini akan membahas cara mengetahui jenis hashing password yang digunakan dalam suatu proyek PHP dengan melihat kode sumber (source code) aplikasi tersebut.

Mengapa Perlu Mengetahui Jenis Hashing?

Mengetahui jenis hashing yang digunakan dalam suatu proyek sangat penting karena:

  1. Keamanan: Beberapa algoritma hashing yang lebih lama memiliki kelemahan keamanan.
  2. Kompatibilitas: Jika ingin mengintegrasikan sistem dengan layanan lain, perlu memastikan bahwa jenis hashing yang digunakan kompatibel.
  3. Upgrade Sistem: Jika proyek menggunakan algoritma yang sudah usang, maka perlu dilakukan upgrade ke metode yang lebih aman.

Metode Hashing yang Umum Digunakan di PHP

PHP menyediakan berbagai metode hashing untuk mengamankan kata sandi. Berikut adalah beberapa yang paling umum digunakan:

  1. MD5 (md5())
  2. SHA-1 (sha1())
  3. SHA-256 (hash('sha256', $password))
  4. bcrypt (password_hash($password, PASSWORD_BCRYPT))
  5. Argon2 (password_hash($password, PASSWORD_ARGON2I/PASSWORD_ARGON2ID))

Cara Mengetahui Jenis Hashing dari Source Code

Untuk mengetahui jenis hashing yang digunakan dalam suatu proyek PHP, langkah-langkah berikut dapat dilakukan:

1. Periksa Fungsi Hashing yang Digunakan

Buka file kode sumber yang berkaitan dengan otentikasi atau penyimpanan password. Cari fungsi hashing yang digunakan dalam kode. Contohnya:

$password_hashed = md5($password);

Kode di atas menggunakan MD5, yang sudah tidak direkomendasikan karena kelemahan keamanannya.

Jika menemukan kode seperti ini:

$password_hashed = password_hash($password, PASSWORD_BCRYPT);

Maka proyek menggunakan bcrypt, yang lebih aman dibanding MD5 atau SHA-1.

2. Periksa Struktur Hash di Basis Data

Jika akses ke database tersedia, periksa panjang dan format hash yang tersimpan dalam kolom password. Berikut adalah indikasi umum dari algoritma hashing berdasarkan panjang hash:

Algoritma Contoh Hash Panjang
MD5 5f4dcc3b5aa765d61d8327deb882cf99 32 karakter
SHA-1 f7c3bc1d808e04732adf679965ccc34ca7ae3441 40 karakter
SHA-256 e3afed0047b08059d0fada10f400c1e5d8f7a0557e897cbdbe7f9b79abf0c8a3 64 karakter
bcrypt $2y$10$eImiTXuWVxfM37uY4JANjQ== 60 karakter
Argon2 $argon2id$v=19$m=1024,t=2,p=2$... >95 karakter

Jika menemukan hash dengan pola tertentu, seperti yang diawali dengan $2y$ atau $argon2id$, itu menandakan penggunaan bcrypt atau Argon2.

3. Cari Konfigurasi Keamanan

Beberapa proyek PHP menyimpan konfigurasi hashing di dalam file konfigurasi, seperti config.php atau .env. Periksa apakah ada pengaturan seperti:

define('HASH_ALGO', 'bcrypt');

atau dalam file .env:

HASHING_ALGORITHM=argon2id

4. Periksa Penggunaan Framework PHP

Jika proyek menggunakan framework seperti Laravel atau CodeIgniter, hashing password biasanya dikelola oleh sistem autentikasi bawaan. Untuk Laravel, hashing dilakukan dengan:

Hash::make($password);

Untuk CodeIgniter:

password_hash($password, PASSWORD_DEFAULT);

5. Lihat Fungsi Verifikasi Password

Selain hashing, PHP memiliki fungsi verifikasi password seperti password_verify(). Jika kode menggunakan:

if (password_verify($input_password, $stored_hash)) {
    echo "Password benar";
}

Maka besar kemungkinan proyek menggunakan password_hash() dengan bcrypt atau Argon2.

Kesimpulan

Mengetahui jenis hashing password yang digunakan dalam proyek PHP sangat penting untuk menjaga keamanan sistem. Dengan melihat kode sumber, database, dan konfigurasi proyek, kita bisa menentukan metode hashing yang digunakan dan menilai apakah masih aman atau perlu diperbarui ke metode yang lebih kuat seperti bcrypt atau Argon2. Jika proyek masih menggunakan MD5 atau SHA-1, sangat disarankan untuk segera beralih ke metode yang lebih aman.

Artikel Terkait

0 Komentar