Halo Sobat Sandio! Kali ini kami hadir membawakan topik baru: Kriptografi. Secara sederhana, kriptografi adalah seni menyandikan data. Terdiri dari dua komponen utama: enkripsi dan dekripsi. Enkripsi adalah mengubah (meng-kode-kan) sebuah pesan yang dapat dimengerti manusia menjadi sulit atau bahkan tidak dapat dimengerti oleh manusia. Tujuannya adalah untuk menjaga kerahasiaan pesan tersebut. Sedangkan dekripsi adalah mengembalikan pesan dari wujud kode menjadi bentuk yang bisa dipahami oleh manusia.

Untuk menerapkan, kali ini akan dipilih PHP sebgai bahasa untuk merealisasikan algoritma kriptografi. Skrip enkripsi-dekripsi yang akan kita buat kali ini menggunakan metode subtitusi karakter yang memanfaatkan fungsi str_replace() yang dimiliki oleh PHP. Algoritma pemrogramannya kurang lebih seperti ini:

  • Sebuah input kita baca secara keseluruhan.
  • Ganti karakter pada input sesuai dengan kode yang kita buat.
  • Tampilkan hasil enkripsi sebagai sebuah output.

Sederhana bukan?

Saatnya beraksi…

Langkah pertama adalah menyiapkan daftar kode/sandi yang diperlukan. Pada contoh kali ini, kami akan mengubah huruf vokal pada input.

<?php
$key = array(
 'a' => '~',
 'i' => '$',
 'u' => '^',
 'e' => '#',
 'o' => '+'
);
?>

Berhubung sifat dari str_replace() adalah case sensitive (huruf besar-kecil diperhatikan) maka sebelum kita proses, ada baiknya jika input kita ubah menjadi lowercase (huruf kecil) terlebih dahulu. Jika Sobat ingin mempertahankan besar-kecil nya huruf, Sobat dapat menambahkan beberapa index pada variabel $key yaitu huruf besar.

<?php
$key = array(
 'a' => '~',
 'i' => '$',
 'u' => '^',
 'e' => '#',
 'o' => '+',
 
 'A' => '!',
 'I' => '%',
 'U' => '_',
 'E' => '=',
 'O' => '*'
);
?>

Setelah kunci peng-kode-an siap, saatnya mensubtitusikan kode kita.

<?php
// Jika ingin membuat menjadi lowercase
// $input = strtolower($input);

// Subtitusi kode
$output = str_replace(array_keys($key), $key, $input);

// Menampilkan output
echo $output;
?>

Skrip secara keseluruhan:

<?php
$input=$_POST["input"];

$key = array(
 'a' => '~',
 'i' => '$',
 'u' => '^',
 'e' => '#',
 'o' => '+',
 
 'A' => '!',
 'I' => '%',
 'U' => '_',
 'E' => '=',
 'O' => '*'
);

// Jika ingin membuat menjadi lowercase
// $input = strtolower($input);

// Subtitusi kode
$output = str_replace(array_keys($key), $key, $input);

// Menampilkan output
echo $output;
?>

<form action="" method="post">
 <textarea name="input" cols="30" rows="8"></textarea>
 <input type="submit" value="Encrypt!" />
</form>

Untuk menambah variasi, dapat pula dituliskan kombinasi huruf unik pada variable $key seperti:

<?php
$key = array(
 'a' => '[53]',
 'i' => '[76]',
 'u' => '[25]',
 'e' => '[99]',
 'o' => '[01]',
 
 'A' => '[02]',
 'I' => '[55]',
 'U' => '[18]',
 'E' => '[19]',
 'O' => '[15]'
);

Untuk dekripsi kode, kita tinggal membalik variable pada str_replace()

// Enkripsi
$output = str_replace(array_keys($key), $key, $input);

// Dekripsi
$output = str_replace($key, array_keys($key), $input);

Pada percobaan kali ini, fungsi str_replace() memiliki peran utama. Fungsi tersebut menerjemahkan teks yang kita masukkan menjadi kode yang kita harapkan.

Kelebihan:

  • Algoritma sederhana, tidak sulit untuk dibuat.
  • Tiap orang bisa membuat variasi yang berbeda.
  • Semakin kreatif mensubtitusi, semakin kuat enkirpsi.
  • Karena buatan sendiri, tidak ada yang mengerti algoritmanya.
  • Kerahasiaan algoritma ada di tangan Sobat sebagai pembuat.

Kekurangan:

  • Skrip di atas menggunakan metode subtitusi karakter alphabet menjadi karakter spesial. Jika user memasukkan salah satu dari karakter spesial yang tertulis di atas pada input, tidak akan terjadi masalah saat enkripsi. Namun saat dekripsi akan terjadi kesalahan penerjemahan.

Hasil dari percobaan di atas adalah: » seperti ini «

Oleh karena program ini masih sangat sederhana, maka kami coba memperbaikinya di Enkripsi Basis Bilangan Menggunakan PHP.

[Semoga Bermanfaat]

Artikel ini telah mengalami penyesuaian dari versi terdahulu yang dipublikasikan pada blog Belajar Web dengan judul Membuat Enkripsi Sederhana Menggunakan PHP.

Enkripsi Sederhana Menggunakan PHP
Tagged on:                         

Leave a Reply

Your email address will not be published. Required fields are marked *