📄 double.cpp
字号:
#include<iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
//using namespace std ;
class user
{
public:
int p;
int g;
int key;
private:
int sec;//随机产生的数值或者先由键盘输入;
public:
void get( int,int);
void getsecert();
int transget(int);
int compute();
};
void user::get(int mainp,int maing)
{
p=mainp;
g=maing;
}
void user::getsecert()
{
// cout<<"请输入secert的值:";
// cin>>sec;
srand( (short int)time( NULL ) );
while(1)
{
sec=rand();
if(sec<p) break;
}
printf("the randomnum is %d\n",sec);
}
int user::compute()
{
int i;
key=1;
for(i=0;i<sec;i++)
key=(g*key)%p;
return key;
}
int user::transget(int getvalue)
{
int i;
key=1;
for(i=0;i<sec;i++)
key=(getvalue*key)%p;
return key;
}
void main()
{
int p,g;
cout<<"请输入p的值:";
cin>>p;
cout<<"请输入g的值:";
cin>>g;
user A,B;
int akey,ax,bkey,bx;
A.get(p,g);
A.getsecert();
ax=A.compute();
cout<<"ax:"<<ax<<endl;
B.get(p,g);
B.getsecert();
bx=B.compute();
cout<<"bx:"<<bx<<endl;
akey=A.transget(bx);
bkey=B.transget(ax);
if(akey==bkey)
{
cout<<"密钥交换Success!"<<endl;
}
else
cout<<"error!"<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -