#include<stdio.h>
#include<string.h>
int main()
{
char box[5][5];
char key[25],plain[100];
int i,j,k=0,l=0;
char ch = 'a';
char alpha[25],temp[25];
printf("\nEnter the key");
scanf("%s",key);
for(i=0;i<25;i++)
{
if(ch=='i')
{
i = i-1;
}
else
{
alpha[i] = ch;
}
ch++;
}
i=0,l=0;
while(key[i]!='\0')
{
for(j=0;j<25;j++)
{
if(alpha[j]==key[i])
{
alpha[j] = '*';
break;
}
}
i++;
}
i=0,l=0,k=0;
for(i=0;i<25;i++)
{
if(alpha[l]=='*')
{}
else
{
temp[k] = alpha[l];
k++;
}
l++;
}
i=0;
j=0;
for(i=0;key[i]!='\0';i++)
{
j= j+1;
}
i=0,l=0,k=0;
for(i=j;i<25;i++)
{
key[i] = temp[l];
l++;
}
k=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
box[i][j] = key[k];
k++;
}
}
printf("\nBOX:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf(" %c ",box[i][j]);
}
printf("\n");
}
printf("\nEnter Plain text:");
scanf("%s",plain);
int size=0;
size= strlen(plain);
for(i=0;plain[i]!='\0';i++)
{
if(plain[i]==plain[i+1])
{
for(j=size;j>i;j--)
{
plain[j]=plain[size-1];
size--;
}
plain[j+1] = 'x';
}
printf("%c",plain[i]);
}
size= 0 ;
size=strlen(plain);
if(size%2!=0)
{
plain[size]='x';
plain[size+1]='\0';
}
printf("\nFinal Plain text is: %s",plain);
size= 0 ;
size=strlen(plain);
printf("\nEncryption is:");
i=0;j=0,k=0,l=0;
int row1=0,col1=0,row2=0,col2=0,q=0;
char pti,ptj,ci1,ci2;
char te[size];
while(plain[l]!='\0')
{
pti = plain[l];
ptj = plain[l+1];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(box[i][j] == pti)
{
row1 = i;
col1 = j;
k++;
}
if(box[i][j] == ptj)
{
row2 = i;
col2 = j;
k++;
}
}
}
if(row1 == row2)
{
ci1 = box[row1][(col1+1)%5];
ci2 = box[row2][(col2+1)%5];
te[q] = ci1;
te[q+1] = ci2;
printf("%c%c",ci1,ci2);
}
else if(col1 == col2)
{
ci1 = box[(row1+1)%5][col1];
ci2 = box[(row2+1)%5][col2];
te[q] = ci1;
te[q+1] = ci2;
printf("%c%c",ci1,ci2);
}
else
{
ci1 = box[row1][col2];
ci2 = box[row2][col1];
te[q] = ci1;
te[q+1] = ci2;
printf("%c%c",ci1,ci2);
}
l=l+2;
q=q+2;
}
size= 0 ;
for(i=0;te[i]!='\0';i++)
{
size=size+1;
}
printf("\nDecryption is:");
i=0;j=0,k=0,l=0;
row1=0,col1=0,row2=0,col2=0,q=0;
while(plain[l]!='\0')
{
pti = te[l];
ptj = te[l+1];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(box[i][j] == pti)
{
row1 = i;
col1 = j;
k++;
}
if(box[i][j] == ptj)
{
row2 = i;
col2 = j;
k++;
}
}
}
if(row1 == row2)
{
ci1 = box[row1][(col1-1)%5];
ci2 = box[row2][(col2-1)%5];
printf("%c%c",ci1,ci2);
}
else if(col1 == col2)
{
ci1 = box[(row1-1)%5][col1];
ci2 = box[(row2-1)%5][col2];
printf("%c%c",ci1,ci2);
}
else
{
ci1 = box[row1][col2];
ci2 = box[row2][col1];
printf("%c%c",ci1,ci2);
}
l=l+2;
}
return 0;
}
#include<string.h>
int main()
{
char box[5][5];
char key[25],plain[100];
int i,j,k=0,l=0;
char ch = 'a';
char alpha[25],temp[25];
printf("\nEnter the key");
scanf("%s",key);
for(i=0;i<25;i++)
{
if(ch=='i')
{
i = i-1;
}
else
{
alpha[i] = ch;
}
ch++;
}
i=0,l=0;
while(key[i]!='\0')
{
for(j=0;j<25;j++)
{
if(alpha[j]==key[i])
{
alpha[j] = '*';
break;
}
}
i++;
}
i=0,l=0,k=0;
for(i=0;i<25;i++)
{
if(alpha[l]=='*')
{}
else
{
temp[k] = alpha[l];
k++;
}
l++;
}
i=0;
j=0;
for(i=0;key[i]!='\0';i++)
{
j= j+1;
}
i=0,l=0,k=0;
for(i=j;i<25;i++)
{
key[i] = temp[l];
l++;
}
k=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
box[i][j] = key[k];
k++;
}
}
printf("\nBOX:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf(" %c ",box[i][j]);
}
printf("\n");
}
printf("\nEnter Plain text:");
scanf("%s",plain);
int size=0;
size= strlen(plain);
for(i=0;plain[i]!='\0';i++)
{
if(plain[i]==plain[i+1])
{
for(j=size;j>i;j--)
{
plain[j]=plain[size-1];
size--;
}
plain[j+1] = 'x';
}
printf("%c",plain[i]);
}
size= 0 ;
size=strlen(plain);
if(size%2!=0)
{
plain[size]='x';
plain[size+1]='\0';
}
printf("\nFinal Plain text is: %s",plain);
size= 0 ;
size=strlen(plain);
printf("\nEncryption is:");
i=0;j=0,k=0,l=0;
int row1=0,col1=0,row2=0,col2=0,q=0;
char pti,ptj,ci1,ci2;
char te[size];
while(plain[l]!='\0')
{
pti = plain[l];
ptj = plain[l+1];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(box[i][j] == pti)
{
row1 = i;
col1 = j;
k++;
}
if(box[i][j] == ptj)
{
row2 = i;
col2 = j;
k++;
}
}
}
if(row1 == row2)
{
ci1 = box[row1][(col1+1)%5];
ci2 = box[row2][(col2+1)%5];
te[q] = ci1;
te[q+1] = ci2;
printf("%c%c",ci1,ci2);
}
else if(col1 == col2)
{
ci1 = box[(row1+1)%5][col1];
ci2 = box[(row2+1)%5][col2];
te[q] = ci1;
te[q+1] = ci2;
printf("%c%c",ci1,ci2);
}
else
{
ci1 = box[row1][col2];
ci2 = box[row2][col1];
te[q] = ci1;
te[q+1] = ci2;
printf("%c%c",ci1,ci2);
}
l=l+2;
q=q+2;
}
size= 0 ;
for(i=0;te[i]!='\0';i++)
{
size=size+1;
}
printf("\nDecryption is:");
i=0;j=0,k=0,l=0;
row1=0,col1=0,row2=0,col2=0,q=0;
while(plain[l]!='\0')
{
pti = te[l];
ptj = te[l+1];
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(box[i][j] == pti)
{
row1 = i;
col1 = j;
k++;
}
if(box[i][j] == ptj)
{
row2 = i;
col2 = j;
k++;
}
}
}
if(row1 == row2)
{
ci1 = box[row1][(col1-1)%5];
ci2 = box[row2][(col2-1)%5];
printf("%c%c",ci1,ci2);
}
else if(col1 == col2)
{
ci1 = box[(row1-1)%5][col1];
ci2 = box[(row2-1)%5][col2];
printf("%c%c",ci1,ci2);
}
else
{
ci1 = box[row1][col2];
ci2 = box[row2][col1];
printf("%c%c",ci1,ci2);
}
l=l+2;
}
return 0;
}
No comments:
Post a Comment