WEB DINAMIS XII RPL
Apa itu enkripsi?
Berdasarkan pengertian yang saya ambil di Wikipedia, Enkripsi itu proses buat mengamankan sebuah informasi. Lalu gimana cara mengamankannya? caranya informasi ini diubah menjadi deretan huruf dan angka yang ngga bisa dibaca tanpa pake ilmu khusus. Contoh penggunaannya biasanya buat nyembunyiin password di database. Biasanya setiap password yang disimpan di database itu dienkripsi supaya ga bisa dibaca oleh orang yang ga punya akses.
[1] Encode dan Decode
Fungsi yang biasa digunakan adalah base64_encode() dan base64_decode(). Biasa keliatan kan kaya apa fungsinya? Ya, untuk mengenkripsi kita bisa gunain fungsi base64_encode dan buat mengembalikan teks yang sudah dienkripsi kita bisa gunain fungsi base64_decode. Nah, berikut ini adalah contoh penggunaannya:
<?php
$plaintext = 'ini blog recodeku.blogspot.co.id.';
//Encode plaintext
$encode = base64_encode($plaintext);
//Decode plaintext
$decode = base64_decode($encode);
echo "teks = ".$plaintext."<br/>";
echo "teks yang diencode = ".$encode."<br/>";
echo "teks yang didecode = ".$decode;
?>
[2] Hashing
Nah, cara yang kedua adalah menggunakan metode hashing. Apa itu hashing? Yaitu salah satu metode yang bisa mengubah karakter apapun menjadi karakter acak. Nah hash ini ada banyak lho! Yang sering digunain itu (katanya) adalah MD5, SHA1, SHA256 dan CRC32. Ga kaya fungsi encode dan decode, hash ini cuma bisa enkripsi aja. Lho? Maksudnya? Kalau kamu ngubah teks, kamu ga ngembaliin teks itu lagi, ga bisa didekripsi lagi. Kenapa? Karena hash ini enkripsi yang bersifat satu arah. Saya biasanya gunain ini buat nyimpen password. Tapi kalau berdasar yang sudah berpengalaman, fungsi ini ga recommended lagi. Di bawah ini contoh penggunaannya:
<?php
$plaintext = 'ini blog recodeku.blogspot.co.id.';
//md5 hash
$md5 = md5($plaintext);
//sha1 hash
$sha1 = sha1($plaintext);
//crc32 hash
$crc32 = crc32($plaintext);
echo "teks = ".$plaintext."<br/>";
echo "MD5 Hash = ".$md5."<br/>";
echo "SHA1 Hash = ".$sha1."<br/>";
echo "CRC32 Hash = ".$crc32."<br/>";
?>
[3] Encrypt dan Decrypt
Nah, kalau berdasar diskusi di forum pemrograman, metode encrypt dan decrypt ini recommended lho, kawan! Metode ini sering digunakan sama web developer buat mengamankan password yang disimpan di database. Nah, fungsi yang biasa digunakan di PHP itu adalah fungsi mcrypt cipher. Beda dengan metode Hash, gunain fungsi mcrypt ini bisa mengenkripsi dan juga mengembalikan lagi teks yang sudah dienkripsi lho! Selain itu, fungsi mcrypt ini memiliki beberapa metode algoritma cipher yang digunakan. Ada mcrypt_3des, mcrypt_blowfish, mcrypt_rijndael_128 dan lain-lain. Nah, berikut ini contoh penggunaannya:
<?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('ini kunci rahasia'), 0, $ks);
/* Intialize encryption */
mcrypt_generic_init($td, $key, $iv);
$plaintext = 'ini blog recodeku.blogspot.co.id.';
/* Encrypt data */
$encrypted = mcrypt_generic($td, $plaintext);
/* 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 "teks = ".$plaintext."<br/>";
echo "teks yang dienkripsi : ".$encrypted."<br/>";
echo "teks yang didekripsi kembali :".trim($decrypted) . "\n";
?>
Tidak ada komentar:
Posting Komentar