#include <string.h>
#define SIZE 100
int main(){
int n,i,j,boyut,k;
char ptext[SIZE];
int ktext[SIZE][SIZE];
char ctext[SIZE];
int intext[SIZE];
int x[100][100];
int son[100][100];
printf("Sifrenelenecek metni giriniz:");//ptext i al,eleman sayısını bul
gets(ptext);//diziyi alıyoruz
n=strlen(ptext);
printf("\nAnahtar kare matrisin boyutunu giriniz:");
scanf("%d",&boyut);
printf("\nAnahtar kare matrisini giriniz:\n");
for(i=0;i<boyut;i++)
for(j=0;j<boyut;j++){
printf("\n%d.satir %d. sutunu giriniz:",i,j);
scanf("%d",&ktext[i][j]);}
for(j=0;j<boyut;j++)
for(i=0;i<boyut;i++)
son[j][i]=0;
for(i=0;i<n;i++)
intext[i]=ptext[i]-'a';
k=0;
for(i=0;i<(n/boyut);i++){
for(j=0;j<boyut;j++){
x[i][j]=intext[j+k];}
k=k+boyut;
}
for(i=0;i<boyut;i++)
for(j=0;j<boyut;j++)
for(k=0;k<boyut;k++)
son[i][j] = son[i][j] + x[i][k]*ktext[k][j];
/*for(i=0;i<boyut;i++)
for(j=0;j<boyut;j++)
printf("\n%d",son[i][j]);*/
k=0;
for(i=0;i<boyut;i++)
for(j=0;j<boyut;j++,k++)
ctext[k]=(son[i][j])%26+'a';
printf("\nhill cipher\n");
for(i=0;i<n;i++)
printf("%c",ctext[i]);
printf("\n");
return 0;
}
Hiç yorum yok:
Yorum Gönder