密文和明文怎样转换
发布网友
发布时间:2022-04-29 17:27
我来回答
共5个回答
热心网友
时间:2023-10-23 15:54
include <iostream>;
using namespace std;
#define N 6 //定义N的大小
#define M 5 //定义M的大小,N>=M
void main()
{
char P[N]={0};
char K[M]={0};
char C[M]={0};//因为要用Ki加密,所以C[]只能有M个大
int i,j;//定义循环变量
cout <<"请输入明文数组,你可以输入"<<N<<"个字符长度"<<endl;
for (i=0;i<N;i++)//为P[N]赋值
{
cout <<" P"<<i<<"=";
cin >>P[i];
}
cout <<"请输入密钥数组,你可以输入"<<M<<"个字符长度"<<endl;
for (j=0;j<M;j++)//为K[M]赋值
{
cout <<"K"<<j<<"=";
cin >>K[j];
}
for (i=0;i<M;i++)//加密!因为K[j]个数有限,只能用M做为循环次数
{
j=i%(M+1);
C[i]=P[i]+K[j];
cout <<P[i]<<endl;
cout <<K[j]<<endl;
cout <<C[i]<<endl;
if (0>C[i])//7F=127
{
//C[cnt]=P[cnt]+K[i%(j+1)];//Ci=Pi+Kj(j=i mod(m+1)) (当Ci<=7FH)
C[i]=C[i]+128;
cout <<C[i]<<endl;
}
else
{
//C[cnt]=P[cnt]+K[i%(j+1)]-128;//Ci=Pi+Kj-80H(j=i mod(m+1)) (当Ci>7FH)
C[i]=C[i];
cout <<C[i]<<endl;
}
}
cout<<endl<<endl<<"输出加密后的密文C[i]如下:"<<endl;
for (i=0;i<=40;i++)
cout <<"#";
cout <<endl;
for (i=0;i<M;i++)//输出加密后的C[i]
{
cout <<C[i]<<endl;
}
for (i=0;i<=40;i++)
cout <<"#";
cout <<endl;
for (i=0;i<M;i++)//解密!因为K[j]个数有限,只能用M做为循环次数
{
j=i%(M+1);
if (C[i]<=K[j])
{
P[i]=C[i]-K[j]+128;//Pi=Ci-Kj (j=i mod(m+1)) (当Ci>=Kj)
}
else
{
P[i]=C[i]-K[j];//80H=128,Pi=Ci-Kj+80H(j=i mod(m+1))(当Ci<Kj)
}
}
cout<<endl<<endl<<"输出解密后的明文P[i]如下:"<<endl;
for (i=0;i<=36;i++)
cout <<"#";
cout <<endl;
for (i=0;i<N;i++)//输出解密后的P[i]
{
cout <<P[i]<<endl;
}
for (i=0;i<=36;i++)
cout <<"#";
cout <<endl<<endl;
热心网友
时间:2023-10-23 15:54
密文一般都是有规则去变成明文的、这规则是保密的
热心网友
时间:2023-10-23 15:54
include <iostream>;
using namespace std;
#define N 6 //定义N的大小
#define M 5 //定义M的大小,N>=M
void main()
{
char P[N]={0};
char K[M]={0};
char C[M]={0};//因为要用Ki加密,所以C[]只能有M个大
int i,j;//定义循环变量
cout <<"请输入明文数组,你可以输入"<<N<<"个字符长度"<<endl;
for (i=0;i<N;i++)//为P[N]赋值
{
cout <<" P"<<i<<"=";
cin >>P[i];
}
cout <<"请输入密钥数组,你可以输入"<<M<<"个字符长度"<<endl;
for (j=0;j<M;j++)//为K[M]赋值
{
cout <<"K"<<j<<"=";
cin >>K[j];
}
for (i=0;i<M;i++)//加密!因为K[j]个数有限,只能用M做为循环次数
{
j=i%(M+1);
C[i]=P[i]+K[j];
cout <<P[i]<<endl;
cout <<K[j]<<endl;
cout <<C[i]<<endl;
if (0>C[i])//7F=127
{
//C[cnt]=P[cnt]+K[i%(j+1)];//Ci=Pi+Kj(j=i mod(m+1)) (当Ci<=7FH)
C[i]=C[i]+128;
cout <<C[i]<<endl;
}
else
{
//C[cnt]=P[cnt]+K[i%(j+1)]-128;//Ci=Pi+Kj-80H(j=i mod(m+1)) (当Ci>7FH)
C[i]=C[i];
cout <<C[i]<<endl;
}
}
cout<<endl<<endl<<"输出加密后的密文C[i]如下:"<<endl;
for (i=0;i<=40;i++)
cout <<"#";
cout <<endl;
for (i=0;i<M;i++)//输出加密后的C[i]
{
cout <<C[i]<<endl;
}
for (i=0;i<=40;i++)
cout <<"#";
cout <<endl;
for (i=0;i<M;i++)//解密!因为K[j]个数有限,只能用M做为循环次数
{
j=i%(M+1);
if (C[i]<=K[j])
{
P[i]=C[i]-K[j]+128;//Pi=Ci-Kj (j=i mod(m+1)) (当Ci>=Kj)
}
else
{
P[i]=C[i]-K[j];//80H=128,Pi=Ci-Kj+80H(j=i mod(m+1))(当Ci<Kj)
}
}
cout<<endl<<endl<<"输出解密后的明文P[i]如下:"<<endl;
for (i=0;i<=36;i++)
cout <<"#";
cout <<endl;
for (i=0;i<N;i++)//输出解密后的P[i]
{
cout <<P[i]<<endl;
}
for (i=0;i<=36;i++)
cout <<"#";
cout <<endl<<endl;
热心网友
时间:2023-10-23 15:54
密文一般都是有规则去变成明文的、这规则是保密的
热心网友
时间:2023-10-23 15:55
通过密匙,明文好比是所密匙好比是钥匙,
热心网友
时间:2023-10-23 15:55
通过密文转换
热心网友
时间:2023-10-23 15:56
密文种类很多,请详细说明。
热心网友
时间:2023-10-23 15:54
include <iostream>;
using namespace std;
#define N 6 //定义N的大小
#define M 5 //定义M的大小,N>=M
void main()
{
char P[N]={0};
char K[M]={0};
char C[M]={0};//因为要用Ki加密,所以C[]只能有M个大
int i,j;//定义循环变量
cout <<"请输入明文数组,你可以输入"<<N<<"个字符长度"<<endl;
for (i=0;i<N;i++)//为P[N]赋值
{
cout <<" P"<<i<<"=";
cin >>P[i];
}
cout <<"请输入密钥数组,你可以输入"<<M<<"个字符长度"<<endl;
for (j=0;j<M;j++)//为K[M]赋值
{
cout <<"K"<<j<<"=";
cin >>K[j];
}
for (i=0;i<M;i++)//加密!因为K[j]个数有限,只能用M做为循环次数
{
j=i%(M+1);
C[i]=P[i]+K[j];
cout <<P[i]<<endl;
cout <<K[j]<<endl;
cout <<C[i]<<endl;
if (0>C[i])//7F=127
{
//C[cnt]=P[cnt]+K[i%(j+1)];//Ci=Pi+Kj(j=i mod(m+1)) (当Ci<=7FH)
C[i]=C[i]+128;
cout <<C[i]<<endl;
}
else
{
//C[cnt]=P[cnt]+K[i%(j+1)]-128;//Ci=Pi+Kj-80H(j=i mod(m+1)) (当Ci>7FH)
C[i]=C[i];
cout <<C[i]<<endl;
}
}
cout<<endl<<endl<<"输出加密后的密文C[i]如下:"<<endl;
for (i=0;i<=40;i++)
cout <<"#";
cout <<endl;
for (i=0;i<M;i++)//输出加密后的C[i]
{
cout <<C[i]<<endl;
}
for (i=0;i<=40;i++)
cout <<"#";
cout <<endl;
for (i=0;i<M;i++)//解密!因为K[j]个数有限,只能用M做为循环次数
{
j=i%(M+1);
if (C[i]<=K[j])
{
P[i]=C[i]-K[j]+128;//Pi=Ci-Kj (j=i mod(m+1)) (当Ci>=Kj)
}
else
{
P[i]=C[i]-K[j];//80H=128,Pi=Ci-Kj+80H(j=i mod(m+1))(当Ci<Kj)
}
}
cout<<endl<<endl<<"输出解密后的明文P[i]如下:"<<endl;
for (i=0;i<=36;i++)
cout <<"#";
cout <<endl;
for (i=0;i<N;i++)//输出解密后的P[i]
{
cout <<P[i]<<endl;
}
for (i=0;i<=36;i++)
cout <<"#";
cout <<endl<<endl;
热心网友
时间:2023-10-23 15:54
密文一般都是有规则去变成明文的、这规则是保密的
热心网友
时间:2023-10-23 15:55
通过密匙,明文好比是所密匙好比是钥匙,
热心网友
时间:2023-10-23 15:55
通过密文转换
热心网友
时间:2023-10-23 15:56
密文种类很多,请详细说明。
热心网友
时间:2023-10-23 15:55
通过密匙,明文好比是所密匙好比是钥匙,
热心网友
时间:2023-10-23 15:55
通过密文转换
热心网友
时间:2023-10-23 15:56
密文种类很多,请详细说明。
热心网友
时间:2023-10-23 15:54
include <iostream>;
using namespace std;
#define N 6 //定义N的大小
#define M 5 //定义M的大小,N>=M
void main()
{
char P[N]={0};
char K[M]={0};
char C[M]={0};//因为要用Ki加密,所以C[]只能有M个大
int i,j;//定义循环变量
cout <<"请输入明文数组,你可以输入"<<N<<"个字符长度"<<endl;
for (i=0;i<N;i++)//为P[N]赋值
{
cout <<" P"<<i<<"=";
cin >>P[i];
}
cout <<"请输入密钥数组,你可以输入"<<M<<"个字符长度"<<endl;
for (j=0;j<M;j++)//为K[M]赋值
{
cout <<"K"<<j<<"=";
cin >>K[j];
}
for (i=0;i<M;i++)//加密!因为K[j]个数有限,只能用M做为循环次数
{
j=i%(M+1);
C[i]=P[i]+K[j];
cout <<P[i]<<endl;
cout <<K[j]<<endl;
cout <<C[i]<<endl;
if (0>C[i])//7F=127
{
//C[cnt]=P[cnt]+K[i%(j+1)];//Ci=Pi+Kj(j=i mod(m+1)) (当Ci<=7FH)
C[i]=C[i]+128;
cout <<C[i]<<endl;
}
else
{
//C[cnt]=P[cnt]+K[i%(j+1)]-128;//Ci=Pi+Kj-80H(j=i mod(m+1)) (当Ci>7FH)
C[i]=C[i];
cout <<C[i]<<endl;
}
}
cout<<endl<<endl<<"输出加密后的密文C[i]如下:"<<endl;
for (i=0;i<=40;i++)
cout <<"#";
cout <<endl;
for (i=0;i<M;i++)//输出加密后的C[i]
{
cout <<C[i]<<endl;
}
for (i=0;i<=40;i++)
cout <<"#";
cout <<endl;
for (i=0;i<M;i++)//解密!因为K[j]个数有限,只能用M做为循环次数
{
j=i%(M+1);
if (C[i]<=K[j])
{
P[i]=C[i]-K[j]+128;//Pi=Ci-Kj (j=i mod(m+1)) (当Ci>=Kj)
}
else
{
P[i]=C[i]-K[j];//80H=128,Pi=Ci-Kj+80H(j=i mod(m+1))(当Ci<Kj)
}
}
cout<<endl<<endl<<"输出解密后的明文P[i]如下:"<<endl;
for (i=0;i<=36;i++)
cout <<"#";
cout <<endl;
for (i=0;i<N;i++)//输出解密后的P[i]
{
cout <<P[i]<<endl;
}
for (i=0;i<=36;i++)
cout <<"#";
cout <<endl<<endl;
热心网友
时间:2023-10-23 15:54
密文一般都是有规则去变成明文的、这规则是保密的
热心网友
时间:2023-10-23 15:55
通过密匙,明文好比是所密匙好比是钥匙,
热心网友
时间:2023-10-23 15:55
通过密文转换
热心网友
时间:2023-10-23 15:54
include <iostream>;
using namespace std;
#define N 6 //定义N的大小
#define M 5 //定义M的大小,N>=M
void main()
{
char P[N]={0};
char K[M]={0};
char C[M]={0};//因为要用Ki加密,所以C[]只能有M个大
int i,j;//定义循环变量
cout <<"请输入明文数组,你可以输入"<<N<<"个字符长度"<<endl;
for (i=0;i<N;i++)//为P[N]赋值
{
cout <<" P"<<i<<"=";
cin >>P[i];
}
cout <<"请输入密钥数组,你可以输入"<<M<<"个字符长度"<<endl;
for (j=0;j<M;j++)//为K[M]赋值
{
cout <<"K"<<j<<"=";
cin >>K[j];
}
for (i=0;i<M;i++)//加密!因为K[j]个数有限,只能用M做为循环次数
{
j=i%(M+1);
C[i]=P[i]+K[j];
cout <<P[i]<<endl;
cout <<K[j]<<endl;
cout <<C[i]<<endl;
if (0>C[i])//7F=127
{
//C[cnt]=P[cnt]+K[i%(j+1)];//Ci=Pi+Kj(j=i mod(m+1)) (当Ci<=7FH)
C[i]=C[i]+128;
cout <<C[i]<<endl;
}
else
{
//C[cnt]=P[cnt]+K[i%(j+1)]-128;//Ci=Pi+Kj-80H(j=i mod(m+1)) (当Ci>7FH)
C[i]=C[i];
cout <<C[i]<<endl;
}
}
cout<<endl<<endl<<"输出加密后的密文C[i]如下:"<<endl;
for (i=0;i<=40;i++)
cout <<"#";
cout <<endl;
for (i=0;i<M;i++)//输出加密后的C[i]
{
cout <<C[i]<<endl;
}
for (i=0;i<=40;i++)
cout <<"#";
cout <<endl;
for (i=0;i<M;i++)//解密!因为K[j]个数有限,只能用M做为循环次数
{
j=i%(M+1);
if (C[i]<=K[j])
{
P[i]=C[i]-K[j]+128;//Pi=Ci-Kj (j=i mod(m+1)) (当Ci>=Kj)
}
else
{
P[i]=C[i]-K[j];//80H=128,Pi=Ci-Kj+80H(j=i mod(m+1))(当Ci<Kj)
}
}
cout<<endl<<endl<<"输出解密后的明文P[i]如下:"<<endl;
for (i=0;i<=36;i++)
cout <<"#";
cout <<endl;
for (i=0;i<N;i++)//输出解密后的P[i]
{
cout <<P[i]<<endl;
}
for (i=0;i<=36;i++)
cout <<"#";
cout <<endl<<endl;