📄 085050_playfair_cipher.cpp
字号:
#include <stdio.h>
#include <conio.h>
main()
{
char matrix[5][5]={{'c','r','y','p','t'},{'o','a','b','d','e'},{'f','g','h','i','k'},{'l','m','n','q','s'},{'u','v','w','x','z'}};
char text[500];
int i,j,k,c=0,hor1,hor2,vert1,vert2,t,choice;
printf("\n ENTER YOUR TEXT : ");
while ((text[c]=getchar())!='\n')
c++;
printf("\n ENTER (1) FOR ENCRYPTION AND (2) FOR DECRYPTION: ");
scanf("%d",&choice);
if(choice==1)
{
for(i=0;i<c;i+=2)
{
if(text[i]=='j')
text[i]='i';
if(text[i+1]=='j')
text[i+1]='i';
if(text[i]==text[i+1])
{
for(j=c;j>i;j--)
text[j+1]=text[j];
text[i+1]='x';
c++;
}
}
if((c % 2) != 0)
text[c]='x';
for(i=0;i<c;i+=2)
{
for(j=0;j<5;j++)
for(k=0;k<5;k++)
{
if(matrix[j][k]==text[i])
{hor1=j;vert1=k;}
if(matrix[j][k]==text[i+1])
{hor2=j;vert2=k;}
}
if(hor1==hor2)
{
if(vert1++<4)
text[i]=matrix[hor1][vert1];
else
text[i]=matrix[hor1][0];
if(vert2++<4)
text[i+1]=matrix[hor2][vert2];
else
text[i+1]=matrix[hor2][0];
}
if(vert1==vert2)
{
if(hor1++<4)
text[i]=matrix[hor1][vert1];
else
text[i]=matrix[0][vert1];
if(hor2++<4)
text[i+1]=matrix[hor2][vert2];
else
text[i+1]=matrix[0][vert2];
}
if(hor1!=hor2 && vert1!=vert2)
{
text[i]=matrix[hor1][vert2];
text[i+1]=matrix[hor2][vert1];
}
}
printf("\n ENCRYPTED TEXT USING PLAYFAIR CIPHER: ");
for(i=0;i<=c;i++)
printf("%c",text[i]);
printf("\n\n\n\n\n Behzad Khiavchi \n std number:085050");
getch();
}
if(choice==2)
{
for(i=0;i<c;i+=2)
{
for(j=0;j<5;j++)
for(k=0;k<5;k++)
{
if(matrix[j][k]==text[i])
{hor1=j;vert1=k;}
if(matrix[j][k]==text[i+1])
{hor2=j;vert2=k;}
}
if(hor1==hor2)
{
if(vert1-->0)
text[i]=matrix[hor1][vert1];
else
text[i]=matrix[hor1][4];
if(vert2-->0)
text[i+1]=matrix[hor2][vert2];
else
text[i+1]=matrix[hor2][4];
}
if(vert1==vert2)
{
if(hor1-->0)
text[i]=matrix[hor1][vert1];
else
text[i]=matrix[4][vert1];
if(hor2-->0)
text[i+1]=matrix[hor2][vert2];
else
text[i+1]=matrix[4][vert2];
}
if(hor1!=hor2 && vert1!=vert2)
{
text[i]=matrix[hor1][vert2];
text[i+1]=matrix[hor2][vert1];
}
}
printf("\n DECRYPTED TEXT USING PLAYFAIR CIPHER:: ");
for(i=0;i<=c;i++)
printf("%c",text[i]);
printf("\n\n\n\n\n Behzad Khiavchi\n std number:085050");
getch();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -