Sabtu, 14 November 2015

Belajar PHP - Membuat Enkripsi Password

Membuat Enkripsi Password di PHP
Sumber: winpoin.com
Pada artikel Mengamankan Password di PHP kali ini kita akan membahas tentang Konsep Enkripsi dan Cara Penerapan Enkripsi di PHP. Sebelumnya toturial ini akan memiliki point pembahasan sebagai berikut :

  • Konsep Enkripsi
  • Penerapan Enkripsi di PHP 
Dan berikut ini sedikit penjelasan dari point di atas.

1. Konsep Enkripsi

Membuat Enkripsi Password di PHP
Sumber: wikipedia.org

Enkripsi adalah proses mengamankan suatu informasi dengan membuat infomrasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi.
Sumber wikipedia.org
Atau dalam bahasa pemahaman saya, Enkripsi adalah sebuah istilah untuk mengubah suatu kata (String) menjadi sebuah kode acak yang memungkin orang lain tidak dapat membacanya. Dan Enkripsi ini sering dipakai untuk membuat password login (Baca : Belajar Membuat Login di PHP ).
Enkripsi ini bisa berupa buatan sendiri atau dengan menggunakan enkripsi md5 yang sudah ada di php. Biasanya untuk membuat Enkripsi di PHP saya menggunakan beberapa enkripsi md5 yang artinya enkripsi itu saya buat menjadi ganda konsepnya seperti ini : md5(md5(md5('password'))).
Untuk membuat enkripsi sendiri di PHP.
biasanya saya melakukannya dengan menggunakan str_replace di dalam PHP dan menambahkan parameter array di dalam str_replace. Akan dimuat pada point penerapan Enkripsi di PHP

2. Penerapan Enkripsi di PHP

Membuat Enkripsi Password di PHP
Sumber: microtrafh.blogspot.com
Setelah membaca point penjelasan konsep Enkripsi tentu kita tak cuma membacanya tetapi harus menerapkannya agar lebih mematangkan pemahaman dalam konsep Enkripsi.

Pada artikel sebelumnya Belajar Membuat Login di PHP membahas tentang password atau kata sandi, kata sandi ini harusnya bersifat pribadi dan tidak boleh di lihat oleh orang lain. Maka dari itu untuk menghindari pencurian data seperti kata sandi ini kita harus membuat Enkripsi.

a. Enkripsi buatan sendiri

Seperti yang sudah saya jelaskan di atas untuk membuat enkripsi password sendiri saya menggunakan str_replace dan di bumbui oleh array agar penggantian huruf dapat lebih banyak. Berikut ini sedikit gambaran tentang Enkripsi buatan sendiri dengan str_replace.
Enkripsi str_replace
<?php

$arraykata=array('A','B','C'); #kata berbentuk array yang akan di gantikan
$arraypengganti=array('1a','b3','c21'); #kata pengganti dari arraykata di atas
echo str_replace($arraykata, $arraypengganti, 'CBA'); # kata CBA akan di gantikan sesuai dengan $arraykata dan di gantikan $arraypengganti;

?>

Jalankan script php tersebut kita akan mendapatkan huruf CBA akan berubah menjadi :
Enkripsi str_replace('CBA')
c21b31a

Anda dapat menambah huruf yang akan di gantikan untuk menjadi enkripsi password Anda yang hanya Anda sendiri yang dapat mengerti tulisan tersebut.

b. Enkripsi dengan MD5

Untuk menambah pemahaman tentang enkripsi md5 ini sekarang kita coba terapkan pada php kita. Buat file baru dengan nama apa saja karena ini untuk pembelajaran saja. Copy dan Paste script php di bawah :
Enkripsi md5
<?php

//sebelum enkripsi
echo 'password';

echo '<br/>';

//di enkripsi
echo md5('password');

?>

Setelah di simpan coba jalankan php tersebut. Dan terdapat penjelasan yang mana tulisan password akan menjadi enkripsi md5 seperti ini :
Enkripsi md5('password')
5f4dcc3b5aa765d61d8327deb882cf99

Tentu hal beda yang akan terjadi jika md5nya kita gandakan seperti md5(md5('password')) berikut scriptnya :
Enkripsi md5
<?php

//sebelum enkripsi
echo 'password';

echo '<br/>';

//di enkripsi
echo md5(md5('password'));

?>

Yang semulanya kode md5 dari password adalah 5f4dcc3b5aa765d61d8327deb882cf99 sekarang berubah menjadi 696d29e0940a4957748fe3fc9efd22a3. Sungguh perbedaan yang sangat jauh bukan daripada harus menyimpan data dengan field password lebih baik passwordnya kita jadikan enkripsi yang jelas keamanannya setidaknya lebih baik dari sebelumnya.

c. Enkripsi Gabungan

Maksudnya Enkripsi gabungan ini adalah kita memadukan enkripsi kita sendiri dengan enkripis md5 yang sudah ada di php. Tentu hal ini mungkin lebih baik daripada harus menggunakannya satu-satu di website kita.

Berikut contoh Enkripsi gabungan antara md5 dengan str_replace yang dimaksud, Anda dapat menambahkan enkripsi lain yang Anda inginkan :
Enkripsi Gabungan md5 dan str_replace
<?php

$arraykata=array('A','B','C'); #kata berbentuk array yang akan di gantikan
$arraypengganti=array('1a','b3','c21'); #kata pengganti dari arraykata di atas
echo md5(str_replace($arraykata, $arraypengganti, 'CBA')); # kata CBA akan di gantikan sesuai dengan $arraykata dan di gantikan $arraypengganti;

?>

Dari script di atas menghasilkan enkripsi seperti ini
Hasil Enkripsi md5 dan str_replace
8e0f83fcf81bc6b7c7e53aaa3276aecf

Atau kita balik str_replace kita gabung dengan md5 ini akan menghasilkan enkripsi yang berbeda dari yang di atas.
Enkripsi str_replace dan md5
<?php

$arraykata=array('A','B','C'); #kata berbentuk array yang akan di gantikan
$arraypengganti=array('1a','b3','c21'); #kata pengganti dari arraykata di atas
echo str_replace($arraykata, $arraypengganti, md5('CBA')); # kata CBA akan di gantikan sesuai dengan $arraykata dan di gantikan $arraypengganti;

?>

Hasilnya akan menjadi seperi ini.
Hasil Enkripsi str_replace dan md5
a61a40943e07257e084ea3f62dfdb1c8

Anda dapat menghasilkan enkripsi lainnya dengan PHP ini, tapi hanya itu saya dapat saya sampaikan selebihnya saya minta maaf jika terdapat kekurangan dapat penyampaian enkripsi ini.
Terima kasih telah membaca toturial singkat saya. Salam :)