#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;
}
我虽横行却不霸道
- 粉丝: 95
- 资源: 1万+
最新资源
- 毕设和企业适用springboot企业知识管理平台类及机器学习平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及酒店管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及技术文档管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及企业IT解决方案平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及客户管理系统源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及企业数字化转型平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及全流程管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及企业项目管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及全球电商管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及全生命周期管理平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及视频监控系统源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及人工智能医疗平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及团队协作平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及线上广告平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及网络营销平台源码+论文+视频.zip
- 毕设和企业适用springboot企业知识管理平台类及职业技能培训平台源码+论文+视频.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈