您好,欢迎来到年旅网。
搜索
您的当前位置:首页playfair加密算法

playfair加密算法

来源:年旅网


#include

#include

void main()

{

int i,j,k,p,q,s,t,m,n;

char a[100],b[120],r[120];

char

c[6][5]={{'c','i','p','h','e'},{'r','a','b','d','f'},{'g','k','l','m','n'},{'o','q','s','t','u'},{'v','w','x','y','z'}};

printf(\"用于加密的5×5变换矩阵为:\\n\");

printf(\"%s\

printf(\"\\n\\n\");

printf(\"请输入需要加密的字符块:\\n\");

scanf(\"%s\

printf(\"\\n\");

m=0;

for(i=0;i<100;i++)

{

if(a[i]!='\\0')

if(a[i]!=a[i+1] && a[i+1]!='\\0')

{

b[m]=a[i];

m++;

b[m]=a[i+1];

i++;

m++;

}

else if(a[i+1]=='\\0')

{

b[m]=a[i];

m++;

b[m]='i'; /*若配对完之后,最后一个字母无相应的配对字符,则令其与字符‘对。*/

m++;

break;

}

else

{

b[m]=a[i];

m++;

b[m]='x';

i’配

m++;

}

else

break;

}

b[m]='\\0';

printf(\"修改后的明文为:\\n\");

printf(\"%s\

printf(\"\\n\\n\");

p=s=5;

n=0;

for(i=0;i<60;i++)

{

if(b[2*i]!='\\0')

{

for(j=0;j<5;j++)

for(k=0;k<5;k++)

{

if(b[2*i]==c[j][k])

{

p=j;

q=k;

}

if(b[2*i]=='j')

{

p=0;

q=1;

}

if(b[2*i+1]==c[j][k])

{

s=j;

t=k;

}

if(b[2*i+1]=='j')

{

s=0;

t=1;

}

if(p<5 && s<5)

{

if(p==s)

{

if(q<4 && t<4)

{

r[n]=c[p][q+1];

n++;

r[n]=c[s][t+1];

n++;

}

else if(q==4 && t<4)

{

r[n]=c[p][0];

n++;

r[n]=c[s][t+1];

n++;

}

else

{

r[n]=c[p][q+1];

n++;

r[n]=c[s][0];

n++;

}

}

else if(q==t)

{

if(p<4 && s<4)

{

r[n]=c[p+1][q];

n++;

r[n]=c[s+1][t];

n++;

}

else if(p==4 && s<4)

{

r[n]=c[0][q];

n++;

r[n]=c[s+1][t];

n++;

}

else

{

r[n]=c[p+1][q];

n++;

r[n]=c[0][t];

n++;

}

}

else

{

r[n]=c[p][t];

n++;

r[n]=c[s][q];

n++;

}

p=5;

s=5;

}

}

}

else

break;

}

r[n]='\\0';

printf(\"原有的需要加密的明文为:\\n\");

printf(\"%s\

printf(\"\\n\\n\");

printf(\"将原文进行修改后得到的字符串为:\\n\");

printf(\"%s\

printf(\"\\n\\n\");

printf(\"用于加密的5×5变换矩阵为:\\n\");

printf(\"%s\

printf(\"\\n\\n\");

printf(\"经过5×5变换矩阵转换后得到的密文为:\\n\");

printf(\"%s\

printf(\"\\n\\n\");

}

若经过配对后的字符串个数为偶数结果如下:

若在相同的两个字符之间加上’x’字符之后,字符块的个数为奇数,则令字符‘与最后一个字符配对,结果如下:

i’

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务