Kısıtlı kriptoloji uygulaması :)

Başlatan loser, 26 Kasım 2017 - 23:38:19

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

loser

Merhaba, bulunduğum ünite doğrultusunda (if-else ve while) kullanarak 4 rakamlı, veri girişini (ikilik sistemde) alan, şifreleyen ve çözümleyen bir program yazdım.
Sizce nasıl olmuş ? Ve sizce yeteneğim varmı, bu konuda elimden gelen her şeyi yapıyorum.

Şifreleyici;
#include <stdio.h>

int main(){
int onay,veri,basamak1,basamak2,basamak3,basamak4;
int yedek1,yedek2,yedek3,yedek4;
int pid1,pid2,pid3,pid4;

printf("4 basamaklı veri girişi;\n");
scanf("%d",&veri);

if(veri%10==1){
basamak1=1;
}
else{
basamak1=0;
}
if((veri/10)%10==1){
basamak2=1;
}
else{
basamak2=0;
}
if(((veri/10)/10)%10==1){
basamak3=1;
}
else{
basamak3=0;
}
if(((veri/10)/10)/10==1){
basamak4=1;
}
else{
basamak4=0;
}

printf("Girilen sayi=%d%d%d%d\nŞifreleme işlemi başlatılsınmı ? (1/0)\n",basamak4,basamak3,basamak2,basamak1 );
scanf("%d",&onay);

/* Her basamak 7 ile toplamının 10 luk sistemdeki eşitiyle değiştirilmeli, birinci basamağı 3., 2.
basamağı 4. ile yer değiştirmelisiniz. */

if(onay==1){
yedek1=(basamak3+7)*4;
yedek2=(basamak4+7)*8;
yedek3=(basamak1+7)*1;
yedek4=(basamak2+7)*2;

printf("Şifrelenmiş veri= %d%d%d%d\n",yedek4,yedek3,yedek2,yedek1);

if(yedek1<10){
pid1=1;
}
else{
pid1=2;
}
if(yedek2<10){
pid2=1;
}
else{
pid2=2;
}
if(yedek3<10){
pid3=1;
}
else{
pid3=2;
}
if(yedek4<10){
pid4=1;
}
else{
pid4=2;
}

pid2=pid2*2;
pid3=pid3*4;
pid4=pid4*8;

printf("Pid 1=%d\n",pid1);

    printf("Pid 2=%d\n",pid2);

    printf("Pid 3=%d\n",pid3);

    printf("Pid 4=%d\n",pid4);



}
else{
printf("İşlemden vazgeçilmiştir.\n");
}

return 0;
}


Şifreleyici çıktısı;
4 basamaklı veri girişi;
1011
Girilen sayi=1011
Şifreleme işlemi başlatılsınmı ? (1/0)
1
Şifrelenmiş veri= 1686428
Pid 1=2
Pid 2=4
Pid 3=4
Pid 4=16


Çözümleyici;
#include <stdio.h>

int main(){
int veri;
int pid1,pid2,pid3,pid4; /* Şifrelenmiş basamak bilgileri. */
int basamak1,basamak2,basamak3,basamak4; /* Birincil basamak degerleri */
int basamak0_1=-1,basamak0_2=-1,basamak0_3=-1,basamak0_4=-1; /* İkincil basamak degerleri */
int bss1,bss2,bss3,bss4; /* Onaylanan degerler */

printf("Veriyi girin.\n");
scanf("%d",&veri);
/* ----------------------------------------------------- */
printf("Pid 1=\n");
scanf("%d",&pid1);

printf("Pid 2=\n");
scanf("%d",&pid2);

printf("Pid 3=\n");
scanf("%d",&pid3);

printf("Pid 4=\n");
scanf("%d",&pid4);

pid2=pid2/2;
pid3=pid3/4;
pid4=pid4/8;
/* ----------------------------------------------------- */

if(pid1==1){
basamak1=veri%10;
veri=veri/10;
}
else{
basamak1=veri%10;
basamak0_1=(veri/10)%10;
veri=(veri/10)/10;
}

/* ----------------------------------------------------- */

if(pid2==1){
basamak2=veri%10;
veri=veri/10;
}
else{
basamak2=veri%10;
basamak0_2=(veri/10)%10;
veri=(veri/10)/10;
}

/* ----------------------------------------------------- */
   
    if(pid3==1){
    basamak3=veri%10;
    veri=veri/10;
    }
    else{
    basamak3=veri%10;
    basamak0_3=(veri/10)%10;
    veri=(veri/10)/10;
    }

/* ----------------------------------------------------- */

    if(pid4==1){
    basamak4=veri%10;
    veri=veri/10;
    }
    else{
    basamak4=veri%10;
    basamak0_4=(veri/10)%10;
    veri=(veri/10)/10;
    }

/* pid Çözümlenir. */


    if(basamak0_1<0){
    printf("%d ",basamak1);
    printf("Veriyi onaylayın=");
    scanf("%d",&veri);
    bss1=(veri/4)-7;
    }
    else{
    printf("%d%d ",basamak0_1,basamak1);
    printf("Veriyi onaylayın=");
    scanf("%d",&veri);
    bss1=(veri/4)-7;
    }
    if(basamak0_2<0){
    printf("%d ",basamak2);
    printf("Veriyi onaylayın=");
    scanf("%d",&veri);
    bss2=(veri/8)-7;
    }
    else{
    printf("%d%d ",basamak0_2,basamak2);
    printf("Veriyi onaylayın=");
    scanf("%d",&veri);
    bss2=(veri/8)-7;
    }
    if(basamak0_3<0){
    printf("%d ",basamak3);
    printf("Veriyi onaylayın=");
    scanf("%d",&veri);
    bss3=veri-7;
    }
    else{
    printf("%d%d ",basamak0_3,basamak3);
    printf("Veriyi onaylayın=");
    scanf("%d",&veri);
    bss3=veri-7;
    }
    if(basamak0_4<0){
    printf("%d ",basamak4);
    printf("Veriyi onaylayın=");
    scanf("%d",&veri);
    bss4=(veri/2)-7;
    }
    else{
    printf("%d%d ",basamak0_4,basamak4);
    printf("Veriyi onaylayın=");
    scanf("%d",&veri);
    bss4=(veri/2)-7;
    }

    printf("Veriniz=%d%d%d%d\n",bss2,bss1,bss4,bss3);



return 0;
}


Çözümleyici çıktısı;
Veriyi girin.
1686428
Pid 1=
2
Pid 2=
4
Pid 3=
4
Pid 4=
16
28 Veriyi onaylayın=28
64 Veriyi onaylayın=64
8 Veriyi onaylayın=8
16 Veriyi onaylayın=16
Veriniz=1011


-Teşekkürler