#include<iostream>
#include<cmath>
using namespace std;

void main()
{
    int p,q;

    cout<<"输入p、q (p、q为质数,不支持过大)"<<endl;
    cin>>p>>q;

    int m=p*q;
    int n=(p-1)*(q-1);
    int e;

    cout<<"输入e (e与"<<n<<"互质) 且 1<e<"<<n<<endl;
    cin>>e;

    int d;
    for(d=1;;d++)
    {
        if(d*e%n==1)
          break;
    }


    cout<<endl<<endl;


    cout<<"{ "<<e<<","<<m<<" }"<<"为公钥"<<endl;
    cout<<"{ "<<d<<","<<m<<" }"<<"为私钥"<<endl;


    cout<<endl<<endl;

    int before;
    cout<<"输入明文"<<endl;
    cin>>before;

    int after;
    int i;

    after=before%n;

    for(i=1;i<e;i++)
        after=(after*before)%m;

    
    cout<<"密文为"<<endl;
    cout<<after<<endl;
}


RSA的简单c++实现

相关文章: