En k r ipsi D a t a

En k r ipsi D a t a

Enkripsi m erupakan suat u proses algor it m a yang m erubah inform asi awal m enj adi dat a yang berupa st ring secara acak( random ) . I nform asi yang lalu lalang di int ernet bagaikan sebuah papan pengum um an yang siap dibaca oleh siapa saj a yang m elihat nya. Tanpa di- enkripsi inform asi dari server ke klien at au sebaliknya dapat dim onit or oleh seseorang dari j arak j auh.

Jika inform asi yang dikirim kan hanya berupa t eks lagu it u t idak m asalah. Nam un bagaim ana j ika yang dikirim kan adalah password kit a unt uk login ke suat u sit us. I t u baru m asalah, dan m em ang it u adalah m asalah serius.

Ket ika anda berint ernet anda m ungkin t idak sadar bahwa akt ivit as anda sedang dim onit or oleh seseorang. Mereka m enget ahui sem ua paket yang dikirim kan at au yang dit erim a kom put er anda. Jika password anda t idak t erenkripsi m aka dengan m udah orang t ersebut m elihat password anda. Lihat gam bar 4.1.

Gam bar 4.1: Pengirim an dat a pada int ernet

Sepert i t erlihat pada gam bar diat as bahwa inform asi yang kit a t erim a sebenarnya m elewat i beberapa host t erlebih dahulu sebelum akhirnya kit a t erim a. I ni dikarenakan koneksi TCP/ I P m em ecah dat a m enj adi paket - paket kecil dan m engirim kan paket ini dari sat u m esin ke m esin lainnya sebelum akhirnya sam pai di sisi klien. Jadi sebelum dat a akhirnya sam pai pada kom put er anda m ungkin saj a dat a it u “ m am pir” ke host yang t idak t erpercaya. Dari penggam baran diat as dapat kit a sim pulkan pent ingnya enkripsi dalam suat u t ransm it di int ernet .

Pada enkripsi dikenal isit ilah Chiper Text yang m erupakan st ring acak hasil dari enkripsi sebuah t ext biasa( plain t ext ) . Lihat gam bar 4.2 unt uk m em perj elas proses enkripsi

Plain

Algorit m a

Gam bar 4.2: proses enkripsi

Kebalikan dari enkripsi adalah dekripsi. Proses dekripsi adalah m engubah kem bali chiper t ext yait u st ring hasil enkripsi m enj adi plain t ext . Unt uk m elakukan dekripsi kit a m em erlukan key at au kunci. Key yang digunakan unt uk dekripsi harus dengan key yang digunakan sewakt u kit a m engenkripsi t ext . Lihat gam bar 4.3.

Algorit m a

Chiper

Algorit m a

Dekr ipsi

Text

Gam bar 4.3: Enkripsi m engubah plain t ext m enj adi chiper t ext . Dekripsi m engubah chiper t ext m enj adi

plain t ext

Met ode unt uk m elakukan enkripsi cukup beragam sepert i MD5 dan SHA. Kedua m et ode ini didukung oleh PHP. Unt uk algorit m a MD5 kit a dapat m enggunakan fungsi md5(). Sedang unt uk algorit m a SHA kit a m enggunakan fungsi sha1(). Unt uk m encobanya j alankan PHP DESI GNER 2005 klik m enu File - N e w - PH P kem udian ket ik kode berikut

<? php // enkripsi menggunakan MD5 dan SHA

$string = 'rahasia-webmaster.com' ; $chiper_md5 = md5 ( $string );

echo "String awal: $string <br>" . "Setelah dienkrip MD5: $chiper_md5 <br>" . "Panjang string setelah dienkrip: " . strlen ( $chiper_md5 );

echo "<p></p>" ; $chiper_sha = sha1 ( $string ); echo "String awal: $string <br>" . "Setelah dienkrip SHA: $chiper_sha <br>" . "Panjang string setelah dienkrip: " . strlen ( $chiper_sha );

Sim pan pada direkt ori h a r i- 1 5 dengan nam a m d5 _ sh a 1 .ph p. Out put yang dit am pilkan browser dari kode diat as adalah

String awal: rahasia-webmaster.com Setelah dienkrip MD5: 213ecd6efcb09078823634e18a25acf0 Panjang string setelah dienkrip: 32 String awal: rahasia-webmaster.com Setelah dienkrip SHA: 1f403aaa8492129605ca27a4421b96895bb85681 Panjang string setelah dienkrip: 40

Perlu diingat bahwa baik proses MD5 dan SHA t idak dapat didekripsi. Art inya hasil enkripsi ini t idak bisa dikem balikan m enj adi st ring asalnya. Met ode ini cocok kit a gunakan unt uk sist em login. Nam un hasil enkripsi dari kedua fungsi ini yait u md5() dan sha1() akan selalu sam a dengan st ring input yang digunakan.

Fungsi lain yang dapat kit a gunakan unt uk m elakukan enkripsi adalah crypt(). Fungsi ini m em iliki dua param et er sat u bersifat waj ib dan sat u bersifat opsional. St rukt ur dasar dari crypt() adalah sebagai berikut Fungsi lain yang dapat kit a gunakan unt uk m elakukan enkripsi adalah crypt(). Fungsi ini m em iliki dua param et er sat u bersifat waj ib dan sat u bersifat opsional. St rukt ur dasar dari crypt() adalah sebagai berikut

Meskipung m em iliki kunci t et api fungsi crypt t idak dapat m endekrip hasil dari enkripsinya sendiri. Sat u yang m enarik dari fungsi ini adalah j ika param et er kunci t idak diisi m aka hasil enkripsi akan selalu berubah set iap kali fungsi t ersebut dipanggil. Unt uk m encobanya buat file baru pada PHP DESI GNER 2005 dengan m engklik File - N e w - PH P, lalu ket ik kode berikut

<? php // enkripsi menggunanakan fungsi crypt $string = 'rahasia-webmaster.com' ;

echo '<p>Hasil yang dienkrip dengan crypt() tanpa kunci:<br>' . '<b>' . crypt($string) . '</b> <== selalu berubah.</p>' . '<p>Hasil yang dienkrip dengan crypt() menggunakan kunci:<br>' . '<b>' . crypt($string, 'xx') . '</b> <== tidak berubah.</p>' ;

Sim pan pada direkt ori h a r i- 1 5 dengan nam a cr ypt .ph p. Jalankan pada browser t ekan t om bol Re fr e sh pada browser beberapa kali unt uk m elihat perubahannya. Hasilnya akan sepert i berikut :

Hasil yang dienkrip dengan crypt() tanpa kunci: $1$jV5.wZ2.$SyR6s4.NHCD1VgkZ3Fb28/ <== selalu berubah.

Hasil yang dienkrip dengan crypt() menggunakan kunci: xx5S2eXCOIs4w <== tidak berubah.

Pada fungsi crypt() yang pert am a hasil yang akan dit am pilkan selalu berubah- ubah. Sedangkan pada fungsi crypt() yang kedua hasilnya akan selalu sam a karena kit a m em berikan param et er kunci yait u ‘xx’. Panj ang sring unt uk kunci m aksim al adalah 2. Jika anda m em asukkan st ring yang panj angnya lebih dari dua m aka yang diam bil adalah dua st ring pert am a.