排列码加密解密程序排列码加密解密程序
//n=4的排列码加密解密程序
#include
#include
using namespace std;
char rhl(char);//循环右移函数
int reverse(int); //取反函数
void encode(); //加密函数
void decode(); //解密函数
int a[8],c[8],d[16],e[8],f[4],t[32],p[32],w[32],remainder,q;
char bite0,bite1,bite4,bite5;
unsign...
排列码加密解密程序
//n=4的排列码加密解密程序
#include
#include
using namespace std;
char rhl(char);//循环右移函数
int reverse(int); //取反函数
void encode(); //加密函数
void decode(); //解密函数
int a[8],c[8],d[16],e[8],f[4],t[32],p[32],w[32],remainder,q;
char bite0,bite1,bite4,bite5;
unsigned char key0[4],key1[4],key[4],r;
//主函数
int main()
{
char file_name1[200],file_name2[200],file_name3[200],file_name4[200];
int i,j,k,choose,zijie2=0,zijie3=0,a1=0,a2=0,a3=0,a4=0;
cout<<" --------请选择您要的操作:---------"<>choose;
//加密过程
if(choose== 1)
{
cout<<" 输入要加密的文件名称及其路径:"<>file_name1;
cout<<" 加密后要保存的文件名称及其路径:"<>file_name2;
ifstream fs0(file_name1,ios::binary);
if(!fs0)
{
cout<<" 文件打开失败~"<>key0;
r=key0[0];
key0[0]=key0[3];
key0[3]=r;
r=key0[1];
key0[1]=key0[2];
key0[2]=r;
while(fs0.get(bite0))
{
unsigned char gg;
for(i=0;i<8;i++)
{
c[i]=bite0&1;//c[i]存明文
bite0=bite0>>1;
}
for(k=0;k<4;k++)
key[k]=key0[k];//用于保存密钥
//模24取余
remainder=key[2]%24;//key0[2]用于选行
//看哪一路径需要取反,前八条路径
gg=key[0];
for(j=0;j<8;j++)
{
d[j]=gg&1;
gg=gg>>1;
}
//后八条路径
gg=key[1];
for(j=8;j<16;j++)
{
d[j]=gg&1;
gg=gg>>1;
}
encode();//低四位加密
//以下是密钥的变化
for(j=0;j<8;j++){
w[j]=key[0]&1;
key[0]=key[0]>>1;
w[j+8]=key[1]&1;
key[1]=key[1]>>1;
w[j+16]=key[2]&1;
key[2]=key[2]>>1;
w[j+24]=key[3]&1;
key[3]=key[3]>>1;
}
for(j=0;j<4;j++){
w[j]=w[j]^1;
w[j+8]=w[j+8]^1;
w[j+16]=w[j+16]^1;
w[j+24]=w[j+24]^1;
}//密钥n位求非n位不求非
for(j=0;j<28;j++){
w[31-j]=w[27-j];
}
for(j=0;j<4;j++)
w[j]=c[j];
for(j=0;j<8;j++){
p[j]=key0[0]&1;
key0[0]=rhl(key0[0]);
p[j+8]=key0[1]&1;
key0[1]=rhl(key0[1]);
p[j+16]=key0[2]&1;
key0[2]=rhl(key0[2]);
p[j+24]=key0[3]&1;
key0[3]=rhl(key0[3]);
}
q=1;
for(j=0;j<32;j++){
if(p[j]==1&&w[j]==1&&q==1){w[j]=1;q=1;}
else if(p[j]==1&&w[j]==1&&q==0){w[j]=0;q=1;}
else if(p[j]==0&&w[j]==0){w[j]=q;q=0;}
else if(w[j]!=p[j]&&q==1){w[j]=0;q=1;}
else{w[j]=1;q=0;}
}
for(j=0;j<8;j++){
t[7-j]=w[31-j];
}
for(j=0;j<24;j++){
w[31-j]=w[23-j];
}
for(j=0;j<8;j++)
w[7-j]=t[7-j];
a1=a2=a3=a4=0;
for(j=7;j>=0;j--){
a1=a1<<1;
a1=a1|w[j];
a2=a2<<1;
a2=a2|w[j+8];
a3=a3<<1;
a3=a3|w[j+16];
a4=a4<<1;
a4=a4|w[j+24];
}
key0[0]=a1;key0[1]=a2;key0[2]=a3;key0[3]=a4;
for(j=0;j<4;j++)
e[j]=a[j];//a[i]存中间加密结果,e[i]存密文
for(j=0;j<4;j++)
c[j]=e[j];
for(j=7;j>=0;j--)
{
zijie2=zijie2<<1;
zijie2=zijie2|c[j];
}
bite4=char(zijie2);
fs1.put(bite4);
}
fs0.close();
fs1.close();
}
//解密过程
if (choose==2)
{
cout<<" 输入要解密的文件名称及其路径:"<>file_name3;
cout<<" 解密后要保存的文件名称及其路径:"<>file_name4;
ifstream fs2(file_name3,ios::binary);
if(!fs2)
{
cout<<" 文件打开失败~"<>key0;
r=key0[0];
key0[0]=key0[3];
key0[3]=r;
r=key0[1];
key0[1]=key0[2];
key0[2]=r;
//cout<<" ======================================"<>1;
}
for(k=0;k<4;k++)
key[k]=key0[k];//用于保存密钥
//模24取余
remainder=key[2]%24;
//看哪一路径需要取反,前八条路径
gg=key[0];
for(j=0;j<8;j++)
{
d[j]=gg&1;
gg=gg>>1;
}
//后八条路径
gg=key[1];
for(j=8;j<16;j++)
{
d[j]=gg&1;
gg=gg>>1;
}
decode();
//以下是密钥的变化
for(j=0;j<8;j++){
w[j]=key[0]&1;
key[0]=key[0]>>1;
w[j+8]=key[1]&1;
key[1]=key[1]>>1;
w[j+16]=key[2]&1;
key[2]=key[2]>>1;
w[j+24]=key[3]&1;
key[3]=key[3]>>1;
}
for(j=0;j<4;j++){
w[j]=w[j]^1;
w[j+8]=w[j+8]^1;
w[j+16]=w[j+16]^1;
w[j+24]=w[j+24]^1;
}//密钥n位求非n位不求非
for(j=0;j<28;j++){
w[31-j]=w[27-j];
}
for(j=0;j<4;j++)
w[j]=f[j];
for(j=0;j<8;j++){
p[j]=key0[0]&1;
key0[0]=rhl(key0[0]);
p[j+8]=key0[1]&1;
key0[1]=rhl(key0[1]);
p[j+16]=key0[2]&1;
key0[2]=rhl(key0[2]);
p[j+24]=key0[3]&1;
key0[3]=rhl(key0[3]);
}
q=1;
for(j=0;j<32;j++){
if(p[j]==1&&w[j]==1&&q==1){w[j]=1;q=1;}
else if(p[j]==1&&w[j]==1&&q==0){w[j]=0;q=1;}
else if(p[j]==0&&w[j]==0){w[j]=q;q=0;}
else if(w[j]!=p[j]&&q==1){w[j]=0;q=1;}
else{w[j]=1;q=0;}
}
for(j=0;j<8;j++){
t[7-j]=w[31-j];
}
for(j=0;j<24;j++){
w[31-j]=w[23-j];
}
for(j=0;j<8;j++)
w[7-j]=t[7-j];
a1=a2=a3=a4=0;
for(j=7;j>=0;j--){
a1=a1<<1;
a1=a1|w[j];
a2=a2<<1;
a2=a2|w[j+8];
a3=a3<<1;
a3=a3|w[j+16];
a4=a4<<1;
a4=a4|w[j+24];
}
key0[0]=a1;key0[1]=a2;key0[2]=a3;key0[3]=a4;
for(j=0;j<4;j++)
e[j]=f[j];
for(j=0;j<4;j++)
a[j]=e[j];
for(j=7;j>=0;j--)
{
zijie3=zijie3<<1;
zijie3=zijie3|a[j];
}
bite5=char(zijie3);
fs3.put(bite5);
}
fs2.close();
fs3.close();
}
if(choose==3)
cout<<" 结束~"<>1;
cc=a|b;
return cc;
}
//加密函数中使用的排列码
void encode()
{
switch(remainder)
{
case 0: //3 2 1 0
a[0]=c[3];if(d[12]==1) a[0]=reverse(a[0]);
a[1]=c[2];if(d[9]==1) a[1]=reverse(a[1]);
a[2]=c[1];if(d[6]==1) a[2]=reverse(a[2]);
a[3]=c[0];if(d[3]==1) a[3]=reverse(a[3]);
break;
case 1: //3 2 0 1
a[0]=c[2];if(d[8]==1) a[0]=reverse(a[0]);
a[1]=c[3];if(d[13]==1) a[1]=reverse(a[1]);
a[2]=c[1];if(d[6]==1) a[2]=reverse(a[2]);
a[3]=c[0];if(d[3]==1) a[3]=reverse(a[3]);
break;
case 2: //3 1 2 0
a[0]=c[3];if(d[12]==1) a[0]=reverse(a[0]);
a[1]=c[1];if(d[5]==1) a[1]=reverse(a[1]);
a[2]=c[2];if(d[10]==1) a[2]=reverse(a[2]);
a[3]=c[0];if(d[3]==1) a[3]=reverse(a[3]);
break;
case 3: //3 1 0 2
a[0]=c[2];if(d[8]==1) a[0]=reverse(a[0]);
a[1]=c[1];if(d[5]==1) a[1]=reverse(a[1]);
a[2]=c[3];if(d[14]==1) a[2]=reverse(a[2]);
a[3]=c[0];if(d[3]==1) a[3]=reverse(a[3]);
break;
case 4: //3 0 2 1
a[0]=c[1];if(d[4]==1) a[0]=reverse(a[0]);
a[1]=c[3];if(d[13]==1) a[1]=reverse(a[1]);
a[2]=c[2];if(d[10]==1) a[2]=reverse(a[2]);
a[3]=c[0];if(d[3]==1) a[3]=reverse(a[3]);
break;
case 5: //3 0 1 2
a[0]=c[1];if(d[4]==1) a[0]=reverse(a[0]);
a[1]=c[2];if(d[9]==1) a[1]=reverse(a[1]);
a[2]=c[3];if(d[14]==1) a[2]=reverse(a[2]);
a[3]=c[0];if(d[3]==1) a[3]=reverse(a[3]);
break;
case 6: //2 3 1 0
a[0]=c[3];if(d[12]==1) a[0]=reverse(a[0]);
a[1]=c[2];if(d[9]==1) a[1]=reverse(a[1]);
a[2]=c[0];if(d[2]==1) a[2]=reverse(a[2]);
a[3]=c[1];if(d[7]==1) a[3]=reverse(a[3]);
break;
case 7: //2 3 0 1
a[0]=c[2];if(d[8]==1) a[0]=reverse(a[0]);
a[1]=c[3];if(d[13]==1) a[1]=reverse(a[1]);
a[2]=c[0];if(d[2]==1) a[2]=reverse(a[2]);
a[3]=c[1];if(d[7]==1) a[3]=reverse(a[3]);
break;
case 8: //2 1 3 0
a[0]=c[3];if(d[12]==1) a[0]=reverse(a[0]);
a[1]=c[1];if(d[5]==1) a[1]=reverse(a[1]);
a[2]=c[0];if(d[2]==1) a[2]=reverse(a[2]);
a[3]=c[2];if(d[11]==1) a[3]=reverse(a[3]);
break;
case 9: //2 1 0 3
a[0]=c[2];if(d[8]==1) a[0]=reverse(a[0]);
a[1]=c[1];if(d[5]==1) a[1]=reverse(a[1]);
a[2]=c[0];if(d[2]==1) a[2]=reverse(a[2]);
a[3]=c[3];if(d[15]==1) a[3]=reverse(a[3]);
break;
case 10: //2 0 3 1
a[0]=c[1];if(d[4]==1) a[0]=reverse(a[0]);
a[1]=c[3];if(d[13]==1) a[1]=reverse(a[1]);
a[2]=c[0];if(d[2]==1) a[2]=reverse(a[2]);
a[3]=c[2];if(d[11]==1) a[3]=reverse(a[3]);
break;
case 11: //2 0 1 3
a[0]=c[1];if(d[4]==1) a[0]=reverse(a[0]);
a[1]=c[2];if(d[9]==1) a[1]=reverse(a[1]);
a[2]=c[0];if(d[2]==1) a[2]=reverse(a[2]);
a[3]=c[3];if(d[15]==1) a[3]=reverse(a[3]);
break;
case 12: //1 3 2 0
a[0]=c[3];if(d[12]==1) a[0]=reverse(a[0]);
a[1]=c[0];if(d[1]==1) a[1]=reverse(a[1]);
a[2]=c[2];if(d[10]==1) a[2]=reverse(a[2]);
a[3]=c[1];if(d[7]==1) a[3]=reverse(a[3]);
break;
case 13: //1 3 0 2
a[0]=c[2];if(d[8]==1) a[0]=reverse(a[0]);
a[1]=c[0];if(d[1]==1) a[1]=reverse(a[1]);
a[2]=c[3];if(d[14]==1) a[2]=reverse(a[2]);
a[3]=c[1];if(d[7]==1) a[3]=reverse(a[3]);
break;
case 14: //1 2 3 0
a[0]=c[3];if(d[12]==1) a[0]=reverse(a[0]);
a[1]=c[0];if(d[1]==1) a[1]=reverse(a[1]);
a[2]=c[1];if(d[6]==1) a[2]=reverse(a[2]);
a[3]=c[2];if(d[11]==1) a[3]=reverse(a[3]);
break;
case 15: //1 2 0 3
a[0]=c[2];if(d[12]==1) a[0]=reverse(a[0]);
a[1]=c[0];if(d[9]==1) a[1]=reverse(a[1]);
a[2]=c[1];if(d[6]==1) a[2]=reverse(a[2]);
a[3]=c[3];if(d[3]==1) a[3]=reverse(a[3]);
break;
case 16: //1 0 3 2
a[0]=c[1];if(d[4]==1) a[0]=reverse(a[0]);
a[1]=c[0];if(d[1]==1) a[1]=reverse(a[1]);
a[2]=c[3];if(d[14]==1) a[2]=reverse(a[2]);
a[3]=c[2];if(d[11]==1) a[3]=reverse(a[3]);
break;
case 17: //1 0 2 3
a[0]=c[1];if(d[4]==1) a[0]=reverse(a[0]);
a[1]=c[0];if(d[1]==1) a[1]=reverse(a[1]);
a[2]=c[2];if(d[10]==1) a[2]=reverse(a[2]);
a[3]=c[3];if(d[15]==1) a[3]=reverse(a[3]);
break;
case 18: //0 3 2 1
a[0]=c[0];if(d[0]==1) a[0]=reverse(a[0]);
a[1]=c[3];if(d[13]==1) a[1]=reverse(a[1]);
a[2]=c[2];if(d[10]==1) a[2]=reverse(a[2]);
a[3]=c[1];if(d[7]==1) a[3]=reverse(a[3]);
break;
case 19: //0 3 1 2
a[0]=c[0];if(d[0]==1) a[0]=reverse(a[0]);
a[1]=c[2];if(d[9]==1) a[1]=reverse(a[1]);
a[2]=c[3];if(d[14]==1) a[2]=reverse(a[2]);
a[3]=c[1];if(d[7]==1) a[3]=reverse(a[3]);
break;
case 20: //0 2 3 1
a[0]=c[0];if(d[0]==1) a[0]=reverse(a[0]);
a[1]=c[3];if(d[13]==1) a[1]=reverse(a[1]);
a[2]=c[1];if(d[6]==1) a[2]=reverse(a[2]);
a[3]=c[2];if(d[11]==1) a[3]=reverse(a[3]);
break;
case 21: //0 2 1 3
a[0]=c[0];if(d[0]==1) a[0]=reverse(a[0]);
a[1]=c[2];if(d[9]==1) a[1]=reverse(a[1]);
a[2]=c[1];if(d[6]==1) a[2]=reverse(a[2]);
a[3]=c[3];if(d[15]==1) a[3]=reverse(a[3]);
break;
case 22: //0 1 3 2
a[0]=c[0];if(d[0]==1) a[0]=reverse(a[0]);
a[1]=c[1];if(d[5]==1) a[1]=reverse(a[1]);
a[2]=c[3];if(d[14]==1) a[2]=reverse(a[2]);
a[3]=c[2];if(d[11]==1) a[3]=reverse(a[3]);
break;
case 23: //0 1 2 3
a[0]=c[0];if(d[0]==1) a[0]=reverse(a[0]);
a[1]=c[1];if(d[5]==1) a[1]=reverse(a[1]);
a[2]=c[2];if(d[10]==1) a[2]=reverse(a[2]);
a[3]=c[3];if(d[15]==1) a[3]=reverse(a[3]);
break;
default:
break;
}
}
//解密函数中使用的排列码表
void decode()
{
switch(remainder)
{
case 0: //3 2 1 0
if(d[12]==1) a[0]=reverse(a[0]);f[3]=a[0];
if(d[9]==1) a[1]=reverse(a[1]);f[2]=a[1];
if(d[6]==1) a[2]=reverse(a[2]);f[1]=a[2];
if(d[3]==1) a[3]=reverse(a[3]);f[0]=a[3];
break;
case 1: //3 2 0 1
if(d[8]==1) a[0]=reverse(a[0]);f[2]=a[0];
if(d[13]==1) a[1]=reverse(a[1]);f[3]=a[1];
if(d[6]==1) a[2]=reverse(a[2]);f[1]=a[2];
if(d[3]==1) a[3]=reverse(a[3]);f[0]=a[3];
break;
case 2: //3 1 2 0
if(d[12]==1) a[0]=reverse(a[0]);f[3]=a[0];
if(d[5]==1) a[1]=reverse(a[1]);f[1]=a[1];
if(d[10]==1) a[2]=reverse(a[2]);f[2]=a[2];
if(d[3]==1) a[3]=reverse(a[3]);f[0]=a[3];
break;
case 3: //3 1 0 2
if(d[8]==1) a[0]=reverse(a[0]);f[2]=a[0];
if(d[5]==1) a[1]=reverse(a[1]);f[1]=a[1];
if(d[14]==1) a[2]=reverse(a[2]);f[3]=a[2];
if(d[3]==1) a[3]=reverse(a[3]);f[0]=a[3];
break;
case 4: //3 0 2 1
if(d[4]==1) a[0]=reverse(a[0]);f[1]=a[0];
if(d[13]==1) a[1]=reverse(a[1]);f[3]=a[1];
if(d[10]==1) a[2]=reverse(a[2]);f[2]=a[2];
if(d[3]==1) a[3]=reverse(a[3]);f[0]=a[3];
break;
case 5: //3 0 1 2
if(d[4]==1) a[0]=reverse(a[0]);f[1]=a[0];
if(d[9]==1) a[1]=reverse(a[1]);f[2]=a[1];
if(d[14]==1) a[2]=reverse(a[2]);f[3]=a[2];
if(d[3]==1) a[3]=reverse(a[3]);f[0]=a[3];
break;
case 6: //2 3 1 0
if(d[12]==1) a[0]=reverse(a[0]);f[3]=a[0];
if(d[9]==1) a[1]=reverse(a[1]);f[2]=a[1];
if(d[2]==1) a[2]=reverse(a[2]);f[0]=a[2];
if(d[7]==1) a[3]=reverse(a[3]);f[1]=a[3];
break;
case 7: //2 3 0 1
if(d[8]==1) a[0]=reverse(a[0]);f[2]=a[0];
if(d[13]==1) a[1]=reverse(a[1]);f[3]=a[1];
if(d[2]==1) a[2]=reverse(a[2]);f[0]=a[2];
if(d[7]==1) a[3]=reverse(a[3]);f[1]=a[3];
break;
case 8: //2 1 3 0
if(d[12]==1) a[0]=reverse(a[0]);f[3]=a[0];
if(d[5]==1) a[1]=reverse(a[1]);f[1]=a[1];
if(d[2]==1) a[2]=reverse(a[2]);f[0]=a[2];
if(d[11]==1) a[3]=reverse(a[3]);f[2]=a[3];
break;
case 9: //2 1 0 3
if(d[8]==1) a[0]=reverse(a[0]);f[2]=a[0];
if(d[5]==1) a[1]=reverse(a[1]);f[1]=a[1];
if(d[2]==1) a[2]=reverse(a[2]);f[0]=a[2];
if(d[15]==1) a[3]=reverse(a[3]);f[3]=a[3];
break;
case 10: //2 0 3 1
if(d[4]==1) a[0]=reverse(a[0]);f[1]=a[0];
if(d[13]==1) a[1]=reverse(a[1]);f[3]=a[1];
if(d[2]==1) a[2]=reverse(a[2]);f[0]=a[2];
if(d[11]==1) a[3]=reverse(a[3]);f[2]=a[3];
break;
case 11: //2 0 1 3
if(d[4]==1) a[0]=reverse(a[0]);f[1]=a[0];
if(d[9]==1) a[1]=reverse(a[1]);f[2]=a[1];
if(d[2]==1) a[2]=reverse(a[2]);f[0]=a[2];
if(d[15]==1) a[3]=reverse(a[3]);f[3]=a[3];
break;
case 12: //1 3 2 0
if(d[12]==1) a[0]=reverse(a[0]);f[3]=a[0];
if(d[1]==1) a[1]=reverse(a[1]);f[0]=a[1];
if(d[10]==1) a[2]=reverse(a[2]);f[2]=a[2];
if(d[7]==1) a[3]=reverse(a[3]);f[1]=a[3];
break;
case 13: //1 3 0 2
if(d[8]==1) a[0]=reverse(a[0]);f[2]=a[0];
if(d[1]==1) a[1]=reverse(a[1]);f[0]=a[1];
if(d[14]==1) a[2]=reverse(a[2]);f[3]=a[2];
if(d[7]==1) a[3]=reverse(a[3]);f[1]=a[3];
break;
case 14: //1 2 3 0
if(d[12]==1) a[0]=reverse(a[0]);f[3]=a[0];
if(d[1]==1) a[1]=reverse(a[1]);f[0]=a[1];
if(d[6]==1) a[2]=reverse(a[2]);f[1]=a[2];
if(d[11]==1) a[3]=reverse(a[3]);f[2]=a[3];
break;
case 15: //1 2 0 3
if(d[12]==1) a[0]=reverse(a[0]);f[2]=a[0];
if(d[9]==1) a[1]=reverse(a[1]);f[0]=a[1];
if(d[6]==1) a[2]=reverse(a[2]);f[1]=a[2];
if(d[3]==1) a[3]=reverse(a[3]);f[3]=a[3];
break;
case 16: //1 0 3 2
if(d[4]==1) a[0]=reverse(a[0]);f[1]=a[0];
if(d[1]==1) a[1]=reverse(a[1]);f[0]=a[1];
if(d[14]==1) a[2]=reverse(a[2]);f[3]=a[2];
if(d[11]==1) a[3]=reverse(a[3]);f[2]=a[3];
break;
case 17: //1 0 2 3
if(d[4]==1) a[0]=reverse(a[0]);f[1]=a[0];
if(d[1]==1) a[1]=reverse(a[1]);f[0]=a[1];
if(d[10]==1) a[2]=reverse(a[2]);f[2]=a[2];
if(d[15]==1) a[3]=reverse(a[3]);f[3]=a[3];
break;
case 18: //0 3 2 1
if(d[0]==1) a[0]=reverse(a[0]);f[0]=a[0];
if(d[13]==1) a[1]=reverse(a[1]);f[3]=a[1];
if(d[10]==1) a[2]=reverse(a[2]);f[2]=a[2];
if(d[7]==1) a[3]=reverse(a[3]);f[1]=a[3];
break;
case 19: //0 3 1 2
if(d[0]==1) a[0]=reverse(a[0]);f[0]=a[0];
if(d[9]==1) a[1]=reverse(a[1]);f[2]=a[1];
if(d[14]==1) a[2]=reverse(a[2]);f[3]=a[2];
if(d[7]==1) a[3]=reverse(a[3]);f[1]=a[3];
break;
case 20: //0 2 3 1
if(d[0]==1) a[0]=reverse(a[0]);f[0]=a[0];
if(d[13]==1) a[1]=reverse(a[1]);f[3]=a[1];
if(d[6]==1) a[2]=reverse(a[2]);f[1]=a[2];
if(d[11]==1) a[3]=reverse(a[3]);f[2]=a[3];
break;
case 21: //0 2 1 3
if(d[0]==1) a[0]=reverse(a[0]);f[0]=a[0];
if(d[9]==1) a[1]=reverse(a[1]);f[2]=a[1];
if(d[6]==1) a[2]=reverse(a[2]);f[1]=a[2];
if(d[15]==1) a[3]=reverse(a[3]);f[3]=a[3];
break;
case 22: //0 1 3 2
if(d[0]==1) a[0]=reverse(a[0]);f[0]=a[0];
if(d[5]==1) a[1]=reverse(a[1]);f[1]=a[1];
if(d[14]==1) a[2]=reverse(a[2]);f[3]=a[2];
if(d[11]==1) a[3]=reverse(a[3]);f[2]=a[3];
break;
case 23: //0 1 2 3
if(d[0]==1) a[0]=reverse(a[0]);f[0]=a[0];
if(d[5]==1) a[1]=reverse(a[1]);f[1]=a[1];
if(d[10]==1) a[2]=reverse(a[2]);f[2]=a[2];
if(d[15]==1) a[3]=reverse(a[3]);f[3]=a[3];
break;
default:
break;
}
}
本文档为【排列码加密解密程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。