Tidak ada sistem yang 1000% aman dari serangan para hacker dan para penjahat di dunia maya ini, kita bisa untuk mengurangi resiko kebocoran data tapi tidak untuk sepenuhnya aman dari ancaman tersebut . Naah.. maka dari itu sobat jenaka sekarang kita kan membahasa beberapa metode keamanan pada php, berikut beberapa metodenya :
1. Encode/Decode
Dala mpembahasan pertama ini fungsi yang digunakan dalam metode encode/decode adalah base64_encode dan base64_decode. Keuntungannya tentu saja password yang kita encode bisa dikembalikan pada karakter semula melalui metode decode. Namun teknik ini sudah jarang sekali digunakan dalam pengamanan password mengingat sangat rentan sekali tingkat keamanannya. Makanya, belakangan ini teknik Encode/Decode mulai ditinggalkan atau digunakan untuk kombinasi dengan teknik lain. Berikut ialah contohnya:<?php $password = 'Sijenaka'; //Encode Password $encode = base64_encode($password); //Decode Password $decode = base64_decode($encode); print $encode."\n"; print $decode; ?>
2. Hashing
Pada PHP, ada beberapa fitur yang mampu mengubah sebuah karakter apapun menjadi kata acak. Teknik ini dinamakan Hashing. Fungsi-fungsi hashing yang sering digunakan adalah MD5, SHA1, SHA256, dan CRC32 (lebih lengkapnya, bisa anda lihat pada halaman ini). Kelemahannya adalah, sistem hashing ini bersifat one-way. Artinya, kita tidak bisa mengembalikan karakter yang telah kita hash pada karakter awal. Berikut contoh penggunaan hashing dengan PHP.<?php $password = 'Sijenaka'; //Teknik MD5 print md5($password); //Teknik SHA1 print sha1($password); //Teknik CRC32 print crc32($password); ?>
3. Encrypt/Decrypt
Teknik berikut ini sangat
direkomendasikan karena sistem yang digunakan berupa teknik
encrypt/decrypt. Artinya, password yang kita encrypt dapat dikembalikan
kembali pada karakter awal. Teknik ini juga sudah banyak diterapkan oleh
banyak web developer untuk memudahkan user dalam hal password recovery
serta peningkatan keamanan yang lebih tinggi. Fungsi yang digunakan pada
PHP hanya mcrypt, dan uniknya ada banyak metode enkripsi atau cipher yang bisa kita gunakan. Seperti MCRYPT_3DES, MCRYPT_BLOWFISH, MCRYPT_RIJNDAEL_192 dan masih banyak lagi.
Dari beberapa metode yang ada sih Sijenaka lebih suka dengan penggunaan dari md5 karna terlihat simple and easy tapi tergantung juga bagi kebutuhan sobat jenaka semua, kalau mau membuat website yang complicated dengan data yang sangat secret Sijenaka saranin sih pake metode encryp/decrypt karna itu lebih aman :), oke selanjutnya mulai membuat aplikasinya ...
<?php
/* Open the cipher */
$td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
/* Create the IV and determine the keysize length, use MCRYPT_RAND
* on Windows instead */
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
$ks = mcrypt_enc_get_key_size($td);
/* Create key */
$key = substr(md5('very secret key'), 0, $ks);
/* Intialize encryption */
mcrypt_generic_init($td, $key, $iv);
/* Encrypt data */
$encrypted = mcrypt_generic($td, 'This is very important data');
/* Terminate encryption handler */
mcrypt_generic_deinit($td);
/* Initialize encryption module for decryption */
mcrypt_generic_init($td, $key, $iv);
/* Decrypt encrypted string */
$decrypted = mdecrypt_generic($td, $encrypted);
/* Terminate decryption handle and close module */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
/* Show string */
echo trim($decrypted) . "\n";
?>
Dari beberapa metode yang ada sih Sijenaka lebih suka dengan penggunaan dari md5 karna terlihat simple and easy tapi tergantung juga bagi kebutuhan sobat jenaka semua, kalau mau membuat website yang complicated dengan data yang sangat secret Sijenaka saranin sih pake metode encryp/decrypt karna itu lebih aman :), oke selanjutnya mulai membuat aplikasinya ...



























