To implement Polyalphabetic cipher encryption- decryption. (WITH OUTPUT IMAGE)


#include<stdio.h>
#include<conio.h>


void main()
{
int i,j,m,a[26][26],klen,plen;
char p[100],p1[100],e[100],d[100],k[100];
clrscr();

printf("\n Enter plaintext::::");
gets(p);

printf("\n Enter key::::");
gets(k);

for(i=0;i<26;i++)
{ m=i;
 for(j=0;j<26;j++)
 { if(m<=25)
   {a[i][j]=m+97;
   m++;
   }
   else
   {a[i][j]=97;
   m=1;
   }
 }
}


plen=strlen(p);
klen=strlen(k);

m=0;
for(i=0;i<plen;i++)
{ if(p[i]!=32)
  {p1[m]=p[i];
   m++;}
}

plen=strlen(p1);

m=0;
for(i=klen;i<plen;i++)
{
 if(m==klen)
 {m=0;
 }
 k[i]=k[m];
 m++;

}

k[i]='\0';
printf("%s",k);
/*
for(i=0;i<26;i++)
{ printf("\n");
 for(j=0;j<26;j++)
 printf("%c",a[i][j]);
}
*/

printf("%d",plen);
//encryption part
printf("\n Encrypted text:::::::::::::::::");
for(i=0;i<plen;i++)
{e[i]=a[k[i]-97][p1[i]-97];
printf(" %c ",e[i]);
}


//Decryption part
printf("\n Decrypted text:::::::::::::::::");
for(i=0;i<plen;i++)
{ if(e[i]<k[i])
  {d[i]=a[0][27-abs(e[i]-k[i])];
 // printf("%d",27-(abs(e[i]-k[i])));
  }

  else
  d[i]=a[0][e[i]-k[i]];
//printf(" %d",abs(e[i]-k[i]));
printf(" %c ",d[i]);
}
getch();
}


OUTPUT:



Comments