Ada banyak fungsi enkripsi yang ada di PHP. Enkripsi untuk melindungi script maupun output dan untuk randomize dalam pembuatan sesuatu. Setidaknya ada 6 jenis enkripsi yang tersedia di PHP. Bisa di dekripsi balik maupun tidak. Itu adalah :
- CRC 32
- MD5
- Crypt()
- SHA1
- str_rot13
- BASE 64
Diantara itu semua,, str_rot 13 dan base 64 yang bisa di decrypt/decode biar bisa dibaca normal lagi. Sekarang ayo kita pelajari
CRC 32
CRC32 ini biasa dipakai untuk checksum file download selain dengan metode md5. Untuk crc32 ini biasanya output-nya berupa file integer dan tidak jarang pula hasilnya adalah negative. Jadi bisa digunakan untuk meng-enkripsi dalam bentuk yang singkat. Tidak bisa di dekripsi balik. Syntaxnya :
<? $kata = "Hello World!"; echo(crc32($kata)); ?>
MD5
Ini termasuk enkripsi yang lumayan panjang lah! Dan termasuk yang divaforitkan untuk meng-enkripsi semacam data-data penting seperti password dan lain-lain. Dengan sifatnya yang panjang (lebih dari 10 karakter), maka akan sulit di deskripsikan (walaupun sekarang katanya udah ada yang bisa deskripsikan!) dan ditebak makna sebenarnya. Syntaxnya tergolong gampang :
<? $kata = "Hello World!"; echo(md5($kata)); ?>
Crypt()
PHP mempunyai fungsi standar yang mencakup banyak metode enkripsi, dikutip dari sumber resminya :
The standard DES-based encryption crypt() returns the salt as the first two characters of the output. It also only uses the first eight characters of str , so longer strings that start with the same eight characters will generate the same result (when the same salt is used).
jadi ada beberapa metode pengecekan yang bisa dilakukan fungsi ini. Contoh :
<?
$pass = crypt("alfa21");
if(crypt("alfa21") == $pass){
echo"Passed";
}
?>
Emang hasilnya pasti Passed tapi setidaknya bisa direpresentasikan deh.. hehe
SHA1
NAh,, untuk enkripsi kali ini mirip-mirip sama md5. Bisa dikatakan juga ini “adiknya” md5 yang sama panjangnya. Selain itu, ada salt-nya juga bisa ditambahkan. Sebenarnya aku juga baru tau juga.. Syntaxnya :
<? $kata = "Hello World!"; echo(sha1($kata)); ?>
str_rot13
Ini salah satu fungsi di PHP yang “mudah” ditebak deskripsinya pake mata telanjang dan mudah dibaca. Di wikipedia juga ada cara untuk deskripsi metode ini. Dalam str_rot13 ini semua huruf akan di enkripsi kecuali karakter numerik/angka, cocok dipakai untuk keamanan tingkat sederhana. Syntaxnya :
<? $kata = "Hello World!"; echo(str_rot13$kata)); ?>
BASE 64
Untuk ini,, ada 2 metode dan perintah di PHP. Yang 1 untuk mengenkripsi, dan yang 1 untuk mendeskripsi dengan perintah yang berbeda pula. Menurutku, inilah metode yang pas untuk emngenkripsi query yang ada di database, mengingat mudah dan cepatnya proses eksekusi. Tapi untuk website berkeamanan tinggi, saya tidak menganjurkan untuk dipakai dalam menyimpan password.
Mungkin inilah salah satu enkripsi yang sangat unik dalam penggabungan huruf kecil dan besarnya. Satu karakter yang berbeda saja akan berakibat hasil yang berbeda dalam penggunaan karakternya. Selain itu dalam jumlah banyak, maka otomatis akan men generate tanda sama dengan di akhir enkripsi. Syntaxnya juga sederhana :
<? $kata = "Hello World!"; $encode = base64_encode($kata); //enkripsi $decode = base64_decode($encode); //dekripsi echo "$decode"; ?>
Nah begitu banyak metode enkripsi yang bisa dipilih,, tapi hacker tetaplah hacker. Betapa amanpun web anda,, nggak ada yang aman dari serangan hacker. Apalagi sekarang sudah ada cara untuk membaca salt yang ada dari hasil enkripsi-enkripsi (yang katanya) aman tersebut.
Semoga bermanfaat! ![]()