Di PHP, Anda dapat menggunakan fungsi hash() untuk menghash password dengan algoritma tertentu, dan tidak ada fungsi bawaan untuk "unhash" password karena hash seharusnya tidak dapat di-"unhash". Namun, saat memverifikasi, Anda dapat menggunakan password_verify().
Contoh PHP hashing dan verifikasi password:
<?php
// Hashing password
$password = "s3cretP@ssw0rd";
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
echo "Password: $password<br>";
echo "Hashed Password: $hashed_password<br>";
// Verifikasi password
$plain_password = "s3cretP@ssw0rd";
$is_verified = password_verify($plain_password, $hashed_password);
echo "Password Verified: " . ($is_verified ? 'true' : 'false');
?>
Penting untuk menggunakan password_hash() dan password_verify() karena mereka secara otomatis menangani aspek keamanan seperti salt dan algoritma hashing yang baik. Jangan mencoba "unhash" password, karena itu bertentangan dengan tujuan utama hashing yang merupakan fungsi satu arah.
Argon2id
Jika Anda ingin menggunakan algoritma Argon2id untuk hashing password dalam PHP, Anda dapat melakukannya menggunakan fungsi password_hash() dengan opsi PASSWORD_ARGON2ID.
Contoh PHP hashing dengan Argon2id:
<?php
// Hashing password dengan Argon2id
$password = "s3cretP@ssw0rd";
$options = [
'cost' => 12, // Cost parameter (dapat disesuaikan)
];
$hashed_password = password_hash($password, PASSWORD_ARGON2ID, $options);
echo "Password: $password<br>";
echo "Hashed Password (Argon2id): $hashed_password<br>";
?>
Anda juga dapat menggunakan Argon2id sebagai opsi algoritma ketika memverifikasi password menggunakan password_verify():
<?php
// Verifikasi password dengan Argon2id
$plain_password = "s3cretP@ssw0rd";
$is_verified = password_verify($plain_password, $hashed_password);
echo "Password Verified: " . ($is_verified ? 'true' : 'false');
?>
Pastikan server PHP Anda mendukung Argon2id, karena tidak semua server mungkin telah mengaktifkan dukungan untuk algoritma tersebut. Juga, Anda dapat menyesuaikan parameter cost sesuai kebutuhan keamanan dan kinerja. Semakin tinggi cost, semakin lama waktu yang dibutuhkan untuk hashing, dan semakin sulit bagi serangan brute force untuk berhasil.
Bcrypt
Jika Anda ingin menggunakan algoritma Bcrypt untuk hashing password dalam PHP, Anda dapat melakukannya menggunakan fungsi password_hash() dengan opsi PASSWORD_BCRYPT. Bcrypt secara umum dianggap sebagai pilihan yang baik untuk hashing password dalam PHP.
Contoh PHP hashing dengan Bcrypt:
<?php
// Hashing password dengan Bcrypt
$password = "s3cretP@ssw0rd";
$options = [
'cost' => 12, // Cost parameter (dapat disesuaikan)
];
$hashed_password = password_hash($password, PASSWORD_BCRYPT, $options);
echo "Password: $password<br>";
echo "Hashed Password (Bcrypt): $hashed_password<br>";
?>
Anda juga dapat menggunakan Bcrypt sebagai opsi algoritma ketika memverifikasi password menggunakan password_verify():
<?php
// Verifikasi password dengan Bcrypt
$plain_password = "s3cretP@ssw0rd";
$is_verified = password_verify($plain_password, $hashed_password);
echo "Password Verified: " . ($is_verified ? 'true' : 'false');
?>
Pastikan untuk menyesuaikan parameter cost sesuai kebutuhan keamanan dan kinerja. Semakin tinggi cost, semakin lama waktu yang dibutuhkan untuk hashing, dan semakin sulit bagi serangan brute force untuk berhasil. Selain itu, pastikan server PHP Anda mendukung Bcrypt, yang seharusnya menjadi standar di sebagian besar instalasi PHP.