Cara menggunakan hash password php mysql

Berikut adalah beberapa cara untuk kita dapat mengenkripsi suatu string atau password dengan php. Umumnya enkripsi digunakan untuk menyimpan string password ke database. Ini juga berlaku pada bahasa pemrograman lainnya. Tidak hanya php saja. Namun kali ini saya akan share bagaimana mengenkripsi password dengan php

Mengapa Butuh Enkripsi Password ??

Baik, sebelum melanjutkan ada baiknya saya menjelaskan mengapa kita membutuhkan enkripsi password. Misal, pada suatu sistem database yang kita buat. Kita menerapkan pengecekan password ke database agar kita dapat login. Bayangkan jika orang tidak bertanggung jawab dapat mengakses database kita, kemudian data user dan password tidak di enkripsi. Maka orang lain dengan mudahnya dapat login ke sistem informasi yang kita buat. Contoh : Kita memiliki tabel user sebagai berikut :

usernamepasswordadminadminandi12345

Bandingkan dengan tabel berikut :

usernamepasswordadminsdal30sd30923mdf023kdf0andi4023403323dfkj03kd23049

Tentu akan lebih aman menggunakan enkripsi bukan ?

Nah, kali ini saya akan berbagi beberapa tips untuk menambahkan enkripsi pada suatu teks php yang umumnya digunakan sebagai enkripsi password yang disimpan ke database.

1. Enkripsi Password PHP dengan MD5

$password = md5('admin'); //contoh password: admin //nilai outputnya adalah 21232f297a57a5a743894a0e4a801fc3

Jika kita menyimpan variabel $password ke database, maka akan tersimpan karakter panjang output yang ada pada kode keterangan di atas.

Pada umumnya enkripsi ini selalu digunakan bagi programmer pemula maupun medium dalam membuat sistem informasi untuk mengamankan password yang ada pada sistem mereka. Namun karena ini sudah sering digunakan terdapat beberapa metode lain yang lebih secure.

2. Enkripsi Password PHP dengan Password Hash

echo password_hash("admin", PASSWORD_DEFAULT);

maka akan tampil output :

$2y$10$xpY0cWt4LLxpnIoveaK6vuWeKUZ4f2cp0PtUbgm1itoydQoJFmvDO

Anda dapat memasukkan perintah ke dalam variable seperti ini :

$password = password_hash("admin", PASSWORD_DEFAULT); echo $password;

Nah, Selanjutnya bagaimana mengecek kebenaran suatu password akan memberikan hasil true pada proses login ?

Kita memerlukan yang namanya password_verify(). Contoh :

<?php // Anggaplah karakter di bawah adalah hasil select dari database $enkripsihash = '$2y$10$xpY0cWt4LLxpnIoveaK6vuWeKUZ4f2cp0PtUbgm1itoydQoJFmvDO'; $passwordlogin = "admin"; //ini adalah password yang diinputkan user pada saat login if (password_verify($passwordlogin, $enkripsihash)) { //memverifikasi apakah enkripsi password login sesuai echo 'Berhasil Login'; //Password Benar } else { echo 'Tidak Berhasil Login'; //Password Salah } ?>

password_hash dan password_verify umum digunakan bersamaan.

3. Enkripsi Password PHP dengan Sha1
Sha1 juga merupakan fungsi enkripsi pada php. Contoh nya adalah sebagai berikut :

<?php $pswd = "admin"; echo $pswd."<br><br>"; $encrypt = sha1($pswd); echo $encrypt; ?>

4. Enkripsi Password PHP dengan Kunci Rahasia (Secret Key)

<?php class Encryption { var $skey = "KeyRahasiaSaya33"; // Ubah Sesuai Keinginan (Jumlah Minimal 16 Karakter) public function safe_b64encode($string) { $data = base64_encode($string); $data = str_replace(array('+','/','='),array('-','_',''),$data); return $data; } public function safe_b64decode($string) { $data = str_replace(array('-','_'),array('+','/'),$string); $mod4 = strlen($data) % 4; if ($mod4) { $data .= substr('====', $mod4); } return base64_decode($data); } public function encode($value){ if(!$value){return false;} $text = $value; $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv); return trim($this->safe_b64encode($crypttext)); } public function decode($value){ if(!$value){return false;} $crypttext = $this->safe_b64decode($value); $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv); return trim($decrypttext); } } $str = "Ini Password Saya"; $converter = new Encryption; $encoded = $converter->encode($str); $decoded = $converter->decode($encoded); echo "$encoded<br><br>"; echo "$decoded"; ?>

Ini adalah salah satu enkripsi yang paling aman untuk password. karena menggunakan kunci rahasia (secret key) yang dalam hal ini hanya kita lah yang mengetahuinya.

Nah, demikianlah beberapa contoh code untuk menerapkan enkripsi pada password php atau sistem informasi php yang kita buat. Tentunya kita sangat menginginkan sistem informasi atau project php yang sedang kita kembangkan itu aman dari pihak yang ingin membobol atau pihak yang hanya sekedar iseng untuk merusak kerja sistem yang telah susah payah kita buat.

Apa itu hash password?

Hash password merupakan algoritma one-way hashing atau pengenkripsian satu arah. Artinya, ketika kata sandi sudah dienkripsi, maka tidak bisa lagi dikembalikan (dekripsi). "Hash adalah proses enkripsi password. Misalnya, password 12345 kalau di hash maka akan menjadi kerkw23.

Apa itu password verify?

password_verify adalah fungsi untuk mencocokkan data asli dengan data yang sudah terhash. secret password adalah password yang kita buat.

Postingan terbaru

LIHAT SEMUA