Enkripsi dan Dekripsi Field Database dengan mempergunakan PGP

Enkripsi dan Dekripsi Field Database dengan mempergunakan PGP

Enkripsi dan Dekripsi Field Database dengan mempergunakan PGP
Enkripsi dan Dekripsi Field Database dengan mempergunakan PGP

Proses enkripsi dan dekripsi isi field dari suatu tabel database, disimulasikan dengan studi kasus berikut ini. Suatu perusahaan bermaksud menyimpan suatu data rahasia yang hanya bisa diketahui isi yang sebenarnya dengan suatu script atau algoritma tertentu. Pengaksesan data dengan cara mengakses data langsung ke tabel database tanpa melalui aplikasi, tidak diperkenankan. Proses menyimpan data kedalam mode ter-enkrip (ciphertext) dalam database dilakukan melalui skrip tertentu. Begitu juga proses menerjemahkan data ter-enkrip (ciphertext) kedalam bentuk text biasa (plaintext) juga dilakukan dengan bantuan script tertentu.

Untuk mengakomodir kebutuhan tersebut, maka proses enkripsi dan dekripsi dilakukan dengan mempergunakan PGP. Berikut ini diagram proses yang terjadi untuk proses enkripsi field database :

Gambar 4 : proses enkripsi field tabel database

Untuk membantu proses enkripsi, maka isi field tabel database yang hendak dienkrip dimasukkan dalam suatu file teks, kemudian dienkripsi. Hasil enkripsi diletakkan kedalam file text lainnya. Selanjutnya file teks yang berisi field yang sudah dienkripsi dibaca dan isi file tersebut dimasukkan kedalam tabel database. Karena panjang karakter dari text yang sudah dienkripsi dengan PGP menjadi sangat panjang (kurang lebih 250 karakter), maka lebar field tabel database yang akan diisikan text yang sudah dienkripsi harus disesuaikan. Berikut ini script PHP yang berfungsi untuk melakukan tugas diatas :

1. Berikut ini script yang berfungsi untuk membaca field yang akan dienkripsi dari tabel dan kemudian dimasukkan dalam file teks :

<form action=ecr.php method=post>

<font face=verdana size=2

color=#334094>

Nomor CC <input type=text

name=vnocc size=25>

<input type=submit value=’OK’>

<input type=reset>

</font>

</form>

Berikut ini isi file ecr.php yang akan menangkap isi variabel vnocc dan disimpan kedalam file teks untuk kemudian dienkripsi :

$CrFile = fopen(“flasl.txt”,”w”);

if(!($CrFile))

{

print(“Error : “);

print(“‘flasl.txt’ gagal dibuat\n”);

exit;

}

fputs($CrFile,$vnocc);

fclose($CrFile);

2. Selanjutnya field yang sudah masuk dalam file teks dienkripsi dengan perintah berikut ini :

$outputc = shell_exec(‘pgpe -c -aftz -o

flasl.txt>flcrp.txt
echo “<pre>$outputc</pre>”;

Perintah php shell_exec berfungsi untuk menjalankan perintah dos yang berfungsi untuk mengenkripsi file teks. Perintah echo “<pre>$outputc</pre>”; berfungsi menjalankan script yang sudah tersimpan di variabel $outputc yaitu : shell_exec(‘pgpe -c -aftz –o flasl.txt>flcrp.txt

3. Field yang telah dienkrip dan disimpan dalam file flcrp.txt, berikutnya dimasukkan dalam tabel database. Teks enkripsi inilah yang akan dipergunakan untuk proses data. Berikut ini script yang berfungsi untuk memasukkan field terenkrip ke dalam tabel database :

$CrFile = fopen(“flcrp.txt”,”r”);

if(!($CrFile))

{

print(“Error : “);

print(“‘flcrp.txt’ gagal dibuka\n”);

exit;

}

$IsiCrp = “”;

while(!feof($CrFile))

{

$IsiFl = fgets($CrFile, 255);

$IsiCrp .= “$IsiFl”;

}

fclose($CrFile);

//mengisikan ke database

$dbconect=odbc_connect(“DBTeliti”,””,””

);

$sqlu=”insert into Account (Nomor)

values (‘$IsiCrp’)”;

$tbdata=odbc_exec($dbconect,$sqlu);

if ($tbdata)

echo(“Data berhasil disimpan”);

else

echo(“Data Gagal disimpan”);

File yang sudah dienkrip dibuka dengan perintah fopen(“flcrp.txt”,”r”);. Pembukaan file dilakukan dalam mode read yang ditunjukkan dengan parameter “r” pada perintah fopen. Isi file dibaca dengan script fgets($CrFile, 255); dan diletakkan ke dalam variabel $IsiCrp. Proses pembacaan isi file ini berulang, sampai file tersebut sudah sampai pada akhir isi file yang ditunjukkan dengan perintah while(!feof($CrFile)) Setelah pembacaan file selesai, file ditutup dengan script fclose($CrFile);. Field yang sudah dienkrip, kemudian dimasukkan kedalam tabel database. Langkah pertama, menyambungkan dengan database dengan fungsi ODBC, yaitu :

odbc_connect(“DBTeliti”,””,””);. Langkah berikutnya, dimasukkan kedalam tabel database dengan perintah :

$sqlu=”insert into Account (Nomor) values (‘$IsiCrp’)”;. Perintah SQL tersebut dieksekusi dengan perintah $tbdata=odbc_exec($dbconect,$sqlu);if ($tbdata). Apabila penambahan data sukses, maka akan muncul komentar :

echo(“Data berhasil disimpan”);,

dan apabila penambahan data gagal, maka akan muncul komentar :

echo(“Data Gagal disimpan”);.

Baca Juga :