Belajar Web Programming PHP, HTML, MySQL dan Tutorial

Mengenkripsi Data Dengan MD5() dan SHA1()

Dalam pembuatan suatu aplikasi berbasis web, keamanan data yang diakses melalui web tersebut merupakan hal yang perlu diperhatikan. Dimasa sekarang teknik-teknik untuk menerobos keamanan dari sebuah aplikasi web telah berkembang signifikan untuk itu perlu dipahami bahwa data-data yang tersimpan dalam database khususnya password untuk melakukan verifikasi login perlu dienkripsi agar value dari password tersebut tidak terbaca secara gamblang.

Pada tutorial kali ini kita menggunakan fungsi yang sudah ada pada php yaitu md5() dan sha1(). untuk penjelasan lebih lanjut mengenai md5() dan sha1() tidak dibahas disini dan anda dapat mencari informasi tersebut melalui google. md5 dan sha1 merupakan enkripsi yang sering disebut dengan "hash function" dimana hasil enkripsinya tidak dapat dikembalikan lagi atau di decrypt kembali untuk memperoleh data sebelum dienkripsi. Keunikan ini menjadikan md5 dan sha1 sebagai barometer untuk mengotentifikasi pengguna apakah adalah benar user yang sesungguhnya yang telah melakukan login.

Dengan teknik tertentu bisa saja orang lain diluar sepengetahuan kita membuka dan membaca database dari aplikasi web yang kita buat. Jika password yang tersimpan tersebut telah dienkripsi maka orang lain tersebut akan kesulitan menebak apa sebenarnya password yang kita simpan tersebut. Oleh karena itu satu-satunya yang mungkin untuk menebak data yang dienkripsi tersebut adalah dengan menggunakan teknik "brute force"

Untuk memulai tutorial ini maka silahkan buat sebuah file dengan nama index.php letakan di dalam folder www (wamp) atau htdocs (xampp) dan kemudian silahkan ketik kode dibawah ini :

<?php
error_reporting("E_ALL & ~E_NOTICE");
?>
<!DOCTYPE HTML>
<html>
<head>
 <title>Mengenkripsi data dengan md5() dan sha1</title>
</head>
<body>
<h2>Mengenkripsi data dengan md5() dan sha1</h2>
<hr>
<form action="" method="post">
<table width="100%">
<tr>
 <td width="100">NIM</td>
 <td><input type="text" name="nim" placeholder="NIM Anda..." style="padding: 6px 5px;"></td>
</tr>
<tr>
 <td width="100">Password</td>
 <td><input type="password" name="password" placeholder="Password Anda..." style="padding: 6px 5px;"></td>
</tr>
<tr>
 <td width="100"></td>
 <td><input type="submit" value="Signin" style="padding: 6px 5px;"></td>
</tr>
</table>
</form>

<hr>
<?php
$nim    = trim($_POST[nim]);
$password = trim($_POST[password]);

if (!empty($nim) && !empty($password))
{
 $md5pass = md5($password);
 $sh1pass = sha1($password);

 $pjgmd5pass = strlen($md5pass);
 $pjgsh1pass = strlen($sh1pass);
?>
<h2>Data Login Mahasiswa</h2>

<table width="100%">
<tr>
 <td width="150">NIM</td>
 <td>: <?php echo $nim;?></td>
 <td rowspan="2">Panjang</td>
</tr>
<tr>
 <td width="150">Password Asli</td>
 <td>: <?php echo $password;?></td>
</tr>
<tr>
 <td width="150">md5() encryption</td>
 <td>: <?php echo $md5pass;?></td>
 <td><?php echo $pjgmd5pass;?> Karakter</td>
</tr>
<tr>
 <td width="150">sha1() encryption</td>
 <td>: <?php echo $sh1pass;?></td>
 <td><?php echo $pjgsh1pass;?> Karakter</td>
</tr>
</table>
<hr>
<i>Selamat mencoba ^^ </i>
<?php
}
?>
</body>
</html>

Kode diatas tidak menggunakan database, tetapi menunjukan suatu prosedur login beserta hasilnya.

$nim    = trim($_POST[nim]);
$password = trim($_POST[password]);

if (!empty($nim) && !empty($password))
Kode diatas digunakan untuk memberi nilai/value variabel $nim dan $password berdasarkan data yang diketikan dan dikirim oleh user kemudian dicek apakah data tersebut kosong atau tidak, jika tidak maka akan dilanjutkan ke prosedur berikutnya.

 $md5pass = md5($password);
 $sh1pass = sha1($password);

 $pjgmd5pass = strlen($md5pass);
 $pjgsh1pass = strlen($sh1pass);

kode diatas adalah proses enkripsi md5 dan sha1, serta menghitung panjang dari hasil masing-masing fungsi enkripsi.

hasilnya adalah md5() memiliki panjang 32 karakter sedangkan sha1 memiliki panjang 40 karakter. sangat panjang bukan karena 32 dan 40 karakter tersebut merupakan karakter hexa yang berbasis 16.

hasil dari kode diatas adalah sebagai berikut :

Mengenkripsi Data Dengan MD5() dan SHA1()


Cukup mudah bukan? silahkan dieksplorasi dan kreasikan kembali ya ^^

Labels: PHP, Tutorial

Terima kasih telah membaca Mengenkripsi Data Dengan MD5() dan SHA1(). Bila bermanfaat boleh di share yah :)

1 Comment for "Mengenkripsi Data Dengan MD5() dan SHA1()"

Terima kasih atas infonya. Jadi bisa mengerti ternyata ada beda karakter md5 dan sha, dan bisa di pakai di php.

Kunjungi blog saya ya: https://tedsu.mahasiswa.atmaluhur.ac.id
dan website kampus saya: http://www.atmaluhur.ac.id

Back To Top