Technology

Teknik Pengamanan Password dengan PHP

 

Loading...

Keamanan data di dunia maya sangatlah crucial untuk dijaga. Terlebih lagi jika menyangkut informasi pribadi. Makanya penting sekali bagi situs anda untuk menerapkan metode enkripsi. Salah satunya, pada item yang seringkali jadi incaran penyadap. Yaitu password. Demi menjaga kenyamanan dan loyalitas user, hendaknya website anda menerapkan metode enkripsi pada setiap password yang disimpan di website anda.  Nah Jagfamily, berikut adalah beberapa metode enkripsi password dengan PHP yang dapat anda terapkan;

1. Encode/Decode

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 = 'jagoanpassword';

//Encode Password
$encode = base64_encode($password);

//Decode Password
$decode = base64_decode($encode);

print $encode."\n<br/>";
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 = 'jagoanpassword';

//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.

<?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";
?>

Opsi di atas ada di tangan anda. Bagi saya sendiri, saya prefer dengan teknik encrypt/decrypt. Apapun pilihan anda, mari pantau terus tingkat keamanan website anda. Terlebih dari sisi pemrograman. Jangan sampai ada celah yang dapat dimasuki hacker.

Semoga bermanfaat ;-)

source: http://php.net/

Loading...

2 komentar

  • 25 Februari 2013 - pukul 17:54

    Gan untuk enkripsi file php ada gk nih cara nya

    • 4 Maret 2013 - pukul 15:20

      untuk enkripsi file php bisa menggunakan ionCube atau script encoder lainnya yang bisa anda cari melalui Google.

Berikan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *