Jan
7
2013

Mengamankan Data Password di Database

Print Friendly

Mengamankan data password di database menjadi hal yang utama dalam membuat website, karena kita tidak ingin orang lain masuk tanpa izin kedalam website kita dan mengacak-acak konten yang ada didalamnya. Maka dari itu segera buat pengamanan yang ekstra pada website anda, salah satunya dengan menggunakan fungsi hash Kriptografi. Menurut Wikipedia, fungsi hash Kriptografi adalah fungsi hash yang memiliki beberapa sifat keamanan tambahan sehingga dapat dipakai untuk tujuan keamanan data. Ada beberapa contoh fungsi hash Kriptografi yang sering digunakan, yaitu :

  • MD5 (34 Karakter)
  • SHA-1 (40 Karakter)

 

Pada tutorial ini, saya menggunakan fungsi hash SHA-1 untuk mengamankan data password di database. Pada tahap pertama, buat form pendaftaran yang ada pada tutorial Membuat Form Pendaftaran Dengan PHP dan MySQL, lalu buat juga form login yang ada pada tutorial Membuat Form Login Dengan PHP dan MySQL. Jika sudah membuat form pendaftaran dan login, maka tahap selanjutnya adalah menambahkan kode yang ada pada kedua file tersebut.

 

Kode PHP pada form Pendaftaran

cekdaftar.php

<?php
include "koneksi.php";

/* Deklarasi variabel */
$username = $_POST['username'];
$password = $_POST['password'];

/* Mengecek data dari database. Jika username sudah ada maka data tidak akan disimpan ke database dan muncul peringatan. */
$user = mysql_query("SELECT username FROM login WHERE username='$username'");
$cek = mysql_num_rows($user);

if($cek==0 AND $username!='' AND $password!=''){
	mysql_query("INSERT INTO login VALUES(null,'$username',sha1('$password'))");
	echo "<h1>Pendaftaran Berhasil</h1>";
}
else {
	echo "<h1>Username sudah ada, silahkan masukkan username yang lain. <a href=index.php>Ulangi Lagi</a></h1>";
}
?>

Perhatikan kode pada variabel $user, kemudian tambahkan kode sha1 pada variabel $password :

$user = mysql_query(“SELECT * FROM login WHERE username=’$username’ AND password=sha1(‘$password’)“);

Kode diatas berguna untuk mengubah karakter password asli kedalam bentuk enkripsi, dalam hal ini kita menggunakan fungsi hash sha1 memiliki jumlah karakter sebanyak 40. Jadi, sependek atau sepanjang apapun password yang anda masukan maka panjang karakter yang di enkripsi tetap berjumlah 40 karakter.

 

Kode PHP pada form Login

ceklogin.php

<?php
include "koneksi.php";

/* Deklarasi variabel */
$username = $_POST['username'];
$password = $_POST['password'];

/* Menyamakan data dari form login dengan yang di database */ 
$user  = mysql_query("SELECT * FROM login WHERE username='$username' AND password=sha1('$password')");
$match = mysql_num_rows($user);

if ($match==1){
	echo "<h1>Login Berhasil</h1>";	
}
else {
	echo "<h1>Login Gagal</h1>";	
}
?>

Sama seperti cara pertama, perhatikan kode pada variabel $user, kemudian tambahkan kode sha1 pada variabel $password :

$user = mysql_query(“SELECT * FROM login WHERE username=’$username’ AND password=sha1(‘$password’)“);

 

Atur nilai karakter pada field “password” yang ada di Database

Jika pada tutorial sebelumnya saya memberi nilai/jumlah karakter pada field password sebanyak 30 karakter, maka kali ini kita akan mengubah nilai tersebut sesuai dengan karakter yang dibutuhkan oleh fungsi hash yang digunakan sekarang, yaitu 40 karakter.
 

Mengamankan Password di Database

 

Jika kita mendaftarkan username baru, maka password yang tersimpan adalah seperti berikut ini :
 

Mengamankan Password di Database (2)

username: test

password: test -> a94a8fe5ccb19ba61c4c0873d391e987982fbbd3

 

:: Contoh File :: - tunggu 5 detik -> klik [Skip Ad] -

 

Demikianlah cara untuk mengamankan data password di database. Jika masih ada masalah atau pertanyaan, silahkan komentar di halaman ini. Terima kasih. :D

 

Salam,

Fritz's Signature

Iklan Layanan Masyarakat


Creative Commons License

This work is licensed under a Creative Commons Attribution 3.0 Unported License.

About the Author: Fritz Erlangga

Passionate Web Programmer & Coffee Lovers

1 Comment+ Add Comment

  • makasih ya, di coba dulu tutorialnya

    moga ilmunya bermanfaat

Tinggalkan Komentar & Pertanyaan

atau

Tanya via Twitter @fritzerlangga :)

Top