Kode Rail Fence Chiper Bahasa C
Secara sederhana konsep ini untuk menyandikan teks sehingga tidak dapat dibaca. Untuk apa ? Ya tau sendiri lah kalau manusia dulu itu melakukan peperangan, pengiriman informasi itu akan lebih baik disandikan agar musuh tidak tahu. Kemudian, munculah teknik-teknik penyandian yang sangat banyak, karena jumlah manusia yang banyak. Salah satu tekniknya adalah RailFence Chiper. Kayak gambar diatas, ada yang namanya plain text atau teks yang belum disandikan, trus disandikan dengan railfence, hasilnya bernama chiper text atau teks yang sudah disandikan. Tebak yang mana ? well, yang Hello World itu plain dan Horel ollWd itu chiper. Trus masih berguna kah sekarang belajar gini ? Ya masih, dimana ada pengiriman informasi, disitulah lebih baik digunakan penyandian. Contohnya internet.
Talk is cheap, show me the code !
Dalam railfence, terdapat konsep zigzag. Jadi teks diatur sedemikian rupa dengan jalur zigzag dengan tinggi key. Nanti teks akan dibaca dengan posisi horizontal kekanan, kebawah, horizontal ke kanan lagi dan seterusnya. Langsung aja ke program bahasa C yaa :
1. Enkripsi (Penyandian)
#include <stdio.h>
#include <string.h>
int main()
{
//char txt[20]="Alloffthefuckinglie"; //teks yang akan di enkripsi
//char hopeless[20]=""; //teks hasil enskripsi
char txt[100];
char hopeless[100];
printf("Masukkan teks : ");
gets(txt);
int panjang = strlen(txt); //jumlah karakter teks yang dienkripsi
printf("Teks yang akan dienkripsi : %s\n", txt); //coba print dulu
int n=5; //number key
int number=0; //sebagai increment pembantu
for(int i=0; i<n; i++){ //0,1,2,3,4
if(i==0 || i==n-1){ //untuk baris 0 dan akhir
int hop2 = i;
for(; hop2<panjang;){
hopeless[number++]=txt[hop2];
hop2 = hop2 + n*2-2;
}
}
else{ //untuk baris selain nol dan akhir
int hop = i;
for(; hop<panjang;){
hopeless[number++]=txt[hop];
hop = hop + n*2-2*(i+1);
if(hop>panjang)
break;
hopeless[number++]=txt[hop];
hop = hop + 2*i;
}
}
}
hopeless[number]='\0';
printf("Hasil enkripsi : %s", hopeless);
return 0;
}
2. Dekripsi (Pemecahan Sandi)
#include <stdio.h>
#include <string.h>
int main()
{
//char txt[20]="Aellhfgiltuneofcifk"; //teks yang akan didekripsi
//char hasil[20]=""; //tempat menyimpan teks dekripsi
char txt[100];
char hasil[100];
printf("Masukkan teks : ");
gets(txt);
int panjang = strlen(txt); //hasilnya 19
printf("Teks yang akan didekripsi : %s\n", txt);
int number = 0;
int n=5; //jumlah key
for(int i=0; i<n; i++){ //baris 0 dan akhir
if(i==0 || i==n-1){
int hop=i;
for(;hop<panjang;){
hasil[hop]=txt[number++];
hop=hop + n*2-2;
}
}
else{ //untuk baris selain diatas
int hop2=i;
for(;hop2<panjang;){
hasil[hop2]=txt[number++];
hop2=hop2 + n*2-2*(i+1);
if(hop2>panjang)
break;
hasil[hop2]=txt[number++];
hop2 = hop2 + 2*i;
}
}
}
hasil[number]='\0';
printf("Hasil dekripsi : %s", hasil);
return 0;
}
Sekian, ini btw kodenya original milik blog ini, jadi kalau copas sertakan sumber ya.

0 Response to "Kode Rail Fence Chiper Bahasa C"
Post a Comment