📄 rsa模拟.cpp
字号:
//p=223,q=311,n=p*q=223*311=69353
//z=(p-1)*(q-1)=222*310=68820
//e=211,e模68820的乘法逆元为10111(d)
//公钥KU=(10111,69353),私钥KR=(211,69353)
//允许明文16位,设明文为“AB”
//AB=4142H=16706
//16706^211 mod 69353=23560=5c08H(密文)
//23560^10111 mod 69353=16706=4142H="AB"(明文)
#include <iostream.h>
#include <iomanip.h>
void main()
{
unsigned long n=69353,e=211,d=10111,m0=16706,c=1,i,m1;
for (i=1;i<=e;i++) //模拟加密
{
c=c*m0;
c=c%n;
}
for (m1=i=1;i<=d;i++) //模拟解密
{
m1=m1*c;
m1=m1%n;
}
cout<<"明文m:"<<hex<<m0<<"H(AB)"<<endl;
cout<<"密文c:"<<setfill('0')<<setw(4)<<c<<"H"<<endl;
cout<<"解密得到的明文:"<<m1<<"H"<<endl;
}
/*
明文m:4142H(AB)
密文c:5c08
5c08H
解密得到的明文:4142H
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -