BackBox Indonesia

Full Version: enkripsi caesar di c
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
apa itu engkripsi caesar ?

adalah salah satu teknik enkripsi paling sederhana dan paling terkenal, Sandi ini termasuk sandi substitusi dimana setiap huruf pada plaintext digantikan oleh huruf lain yang memiliki selisih posisi tertentu dalam alfabet. Nama caesar sendiri diambil dari Julius caesar, jendral konsul dan diktator Romawi yang menggunakan sandi ini untuk berkomunikasi dengan panglimanya. [wikipedia]


[Image: 320px-Caesar3.svg.png]

contoh menggunakan pergeseran (key dalam source) 3 maka: 
Code:
huruf a akan menjadi d, huruf b akan menjadi e, huruf c akan menjadi f, dan seterusnya

katob : ndwre

rumus 
Quote:En (x) = (x + n) % 26

dekripsi : 

Dn (x) = ( x + n) % 26 

angka 26 menyatakan banyaknya alfabet a - z berjumlah 26.

rumus versi ascii :

Quote:En (x) = (x + n) % 255

deskripsi :

Dn (x) = (x + n) % 255


source : 
Code:
/*
    simple program enkripsi caesar
*/
#include <stdio.h>


int main(int argc, char *argv[])
{
    char kata[255];
    int i = 0;
    int key=atoi(argv[2]);

    if(argc != 3){
        printf("cara gunain ./caesar [options] \n");
        printf("[+]options[+]\n");
        printf("-e : enkripsi\n");
        printf("-d : dekripsi\n \n");
        printf("contoh enkripsi : ./caesar -e 3\n");
        return 0;
    }
    
    printf("Masukan Kata : ");
    gets(kata);
        
        while(kata[i] != '\0')
        {
            if(kata[i] >= 'a' && kata[i] <= 'z')
            {
                if(!strcmp("-e", argv[1]))
                    kata[i]=(kata[i]+key)%255;
                else
                if(!strcmp("-d", argv[1]))
                    kata[i]=(kata[i]-key)%255;        
            }else
            if(kata[i] >= 'A' && kata[i] <= 'Z')
            {
                if(!strcmp("-e", argv[1]))
                    kata[i]=(kata[i]+key)%255;
                else
                if(!strcmp("-d", argv[1]))
                    kata[i]=(kata[i]-key)%255;    

            }

            i++;            
        }
        
        
        printf("hasil dekripsi : %s \n",kata );        
    
    return 0;
}

[Image: 12920485_1176247409054421_80967637033391...d30b02ba5f]


sekian
mastah (-/\-)