#include <iostream>
#include "stdafx.h"
#include <time.h>
using namespace std;
int isPrime(long a)
{
if (a < 0)
return -1;
else if (a == 1 || a == 2)
{
return 0;
}
else if (a == 0)
{
return 0;
}
else
{
if ((a%2 == 0) || (a%3 == 0) || (a%5 == 0) || (a%7 == 0))
{
return 0;
}
else
return 1;
}
}
long createRSAkeys(int x, int y)
{
long temKey = (x - 1) * (y - 1);
long minNum = 2;
long maxNum = temKey - 1;
long e = 0;
/*srand( (unsigned)time( NULL ) );
long e = rand()%(maxNum - minNum + 1) + minNum; */
while(isPrime(e) != 1)
{
srand( (unsigned)time( NULL ) );
e = rand()%(maxNum - minNum + 1) + minNum;
}
return e;
}
void main()
{
int x, y;
int N,e;
cout << "Input two prime numbers:" << endl;
cin >> x >> y;
N = x * y;
e = createRSAkeys(x, y);
cout << "The key is ( " << N << ","<< e << ")" << endl;
}
公开密钥(N,e)的生成算法。
最新推荐文章于 2021-11-13 11:28:14 发布