Encrypt dan Decrypt

Encrypt adalah istilah untuk merubah data menjadi data yang rahasia. Sedangkan decrypt adalah mengembalikan data rahasia tersebut menjadi data aslinya.

Cara yang paling sederhana untuk membuat program enkrip adalah dengan menggeser data dengan faktor tertentu. Kita bisa menggeser dengan cara menambah atau mengurangi nilai ordinal datanya, bisa juga dengan memutar data dalam kode binernya. Jika kita menggeser data dengan menambah nilai ordinalnya dengan faktor 1, maka karakter A akan menjadi B, a menjadi b, b menjadi c, dan seterusnya. Tentu saja contoh ini hanya salah satu contoh yang paling sederhana. Jangan digunakan untuk melindungi data Anda ❗

Tipe data Char memiliki ukuran yang sama dengan tipe byte. Sedangkan byte merupakan bilangan biner dengan lebar data 8 bit (bit= binary digit). Sebagai contoh, karakter A memiliki nilai ordinal 65. Bilangan 65 dalam hexadesimal adalah 41H. Sehingga karakter A dalam biner adalah 01000001b. Jika kita memutar data tersebut ke arah kanan sebanyak satu langkah, maka datanya menjadi 10100000b atau 0A0H atau 160. Karakter dengan nilai ordinal ini akan tercetak sebagai á. Anda dapat mencobanya dengan menekan tombol Alt (tahan) kemudian mengetikkan bilangan 160 pada number keypad (bukan pada tombol bagian atas) lalu lepaskan tombol Alt.

Kita akan membuat contoh program yang menerapkan keduanya. Pertama kita menambah ordinal data dengan 5. kemudian kita memutar data ke kanan sebanyak 1 langkah. Delphi tidak menyediakan perintah untuk memutar data. Deplhi hanya menyediakan perintah untuk menggeser data ke arah kanan (dengan perintah shr diikuti nilai pergeserannya) dan perintah untuk menggeser data ke arah kiri (dengan perintah shl diikuti nilai pergeserannya). Untuk mendapatkan efek putar, kita bisa menggabungkan dua perintah tersebut seperti contoh berikut:

Data asli : 01000001
Ke Kanan 1: 00100000
Ke Kiri 7 : 10000000
OR kan    : 10100000

Efek perputaran ke kanan 1 langkah bisa didapat dari hasil operasi OR antara data asli yang digeser ke kanan 1 langkah dengan data asli yang digeser ke kiri sebanyak 7 langkah.

program Encrypt;
{$APPTYPE CONSOLE}
var c:char;
begin
  while not EOF do
  begin
    read(c);
    c:=Char(ord(c)+5);
    c:=Char((ord(c)shr 1)or(ord(c)shl 7));
    write(c);
  end;   
end.

Proses dekrip adalah proses yang tepat kebalikan dari proses enkrip.

program Decrypt;
{$APPTYPE CONSOLE}
var c:char;
begin
  while not EOF do
  begin
    read(c);
    c:=Char((ord(c)shl 1)or(ord(c)shr 7));
    c:=Char(ord(c)-5);
    write(c);
  end;   
end.

Sekarang bayangkan bahwa Anda adalah seorang pedagang yang mengirim pesan kepada rekan Anda dengan pesan sebagai berikut:

Harga sebenarnya sih cuma 1 juta, tapi bilang aja 10 juta, dia nggak bakal tahu.

Simpan pesan tersebut dengan nama file pesan.txt. Setelah di enkrip dengan cara:

C:\Source>encrypt<pesan.txt>rahasia.txt

Maka file rahasia.txt akan terlihat seperti:

¦3»63’<5³5¹3»¹?3’<7¶’4=93’’·=¼3˜’¼3º7’³7¸3¹6’3·3’š’·=¼3˜’´73’¹6638’³383¸’¼3¶=™

Jika dilakukan perintah:

C:\Source>decrypt<rahasia.txt>asli.txt

Maka file asli.txt akan sama dengan file pesan.txt.

Tentu saja jika Anda membuat program tersebut tujuannya bukan untuk ngibulin pembeli 😀 Banyak hal yang memang membutuhkan proses merahasiakan data. Sebagai contoh, Anda membuat aplikasi data base dan hanya orang-orang tertentu saja yang boleh login ke aplikasi tersebut. Tentu saja Anda menyimpan data passwordnya dalam sebuah file. Jika file tersebut tidak dienkrip terlebih dahulu, maka dengan mudah orang bisa membaca passwordnya, dan orang-orang yang tidak bertanggung jawab bisa dengan mudah mengacaukan data-data Anda.

Jika kita melihat perbedaan antara data asli dengan data yang dienkrip, maka kedua data tersebut seoleh-oleh tidak memiliki hubungan sama sekali. Akan tetapi pada kenyataannya, proses pemecahan kode juga dilakukan melalui program. Semakin sederhana proses enskripsi, semakin mudah kode dipecahkan. Jadi, jangan menggunakan metode ini untuk menyimpan rahasia Anda.

Apakah Anda menyukai post ini? Mengapa tidak memberikan komentar di bawah dan melanjutkan perbincangan, atau berlangganan my feed dan dapatkan artikel semacam ini yang dikirm secara otomatis feed reader Anda.
Harap diperhatikan bahwa komentar atau pertanyaan yang disampaikan haruslah sesuai dengan topik yang sedang dibahas. Komentar atau pertanyaan yang tidak sesuai dengan topik akan kami hapus :!:

4 Komentar
  1. mas saya belum paham yg digeser ke kanan atau kekiri.
    contoh :
    Data asli : 01000001
    Ke Kanan 1: 00100000

    nah data asli itu kn angka 1 ada 2 trs di geser ke kanan angka 1 nya hilang.
    mohon penjelasanya.
    newby

    • Jangan dilihat satu langkah saja, tapi lihat langkah lainnya juga, yaitu di-OR-kan dengan yang digeser ke kiri 7 bit. Perhatikan penjelasannya. Jadi, angka 1 yang hilang karena digeser ke kanan, itu dimasukkan ke kiri dengan cara meng-OR-kan dengan yang digeser ke kiri 7. Penggeseren ke kiri sebanyak 7 bit itu hanya akan mengambil 1 bit paling kanan saja.

  2. mas jadi cara mengembalikan data dengan hexditor seperti apa? caranya gmn mas… terimakasih

    • Decrypt dengan hex editor? Tentu itu sangat sulit. Proses decrypt itu hanya bisa dilakukan kalau kita mengetahui secara pasti proses encrypt yang telah dilakukan. Decrypt adalah melakukan secara kebalikannya.

Tinggalkan komentar

Sebelum membuat komentar, pastikan Anda telah membaca komentar-komentar sebelumnya. Jangan membuat pertanyaan yang telah ditanyakan. Perhatikan pula link-link dalam artikel. Lihatlah link tersebut sebelum membuat pertanyaan, karena mungkin penjelasan dari pertanyaan Anda telah di jawab dalam link tersebut.

Komentar yang tidak mengikuti aturan ini akan dihapus!

(wajib)

(wajib)


Time limit is exhausted. Please reload the CAPTCHA.