// 加密机.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<stdio.h>
#include<math.h>
//密钥产生
void Rsa(int &e,int &d,int &n,int &F_n)
{
int p,q;
double dl;
printf("请输入密钥产生器所需的两个参数\n");
printf("p=?,q=?");scanf("%d,%d",&p,&q);
n=p*q;
F_n=(p-1)*(q-1);
printf("输入e(1<e<%d)",F_n);scanf("%d",&e);
for(int s=1;s<F_n;s++)
{
dl=(F_n*s+1)/(float)e;
if(dl==(int)dl) break;
}
d=(int)dl;
printf("e=%d,d=%d",e,d);
}
//加密函数(算法)
void _RSAE(int e,int a,int n)
{
int b;
b=((int)pow((float)a,(float)e))%n;
printf("\n 密文:%d",b);
}
//解密函数
void _RSAD(int d,int a,int n)
{
int b;
b=((int)pow((float)a,(float)d))%n;
printf("\n 密文:%d",b);
}
void main()
{
int e,d,n,F_n;
Rsa(e,d,n,F_n);
//char P[]="ainiyiwannian";
//char C[100];
int a;
printf("加密程序,输入明文\n");
scanf("%d",&a);
_RSAE(e,a,n);
printf("解密程序,输入密文\n");
scanf("%d",&a);
_RSAD(d,a,n);
}