首先申明我是菜鸟中的菜鸟,请各位不要嘲笑~~~~~~~~。
原想用C语言编写个演示RSA加密和解密的小程序,但是完成后发现程序无法正常的使用。请C语言高手帮我看看~~~~~谢谢拉
#include <stdio.h>//标准输入输出支持
#include <math.h>//基本数学运算支持
main()
{
int p;
int q;
int n;
int Fn;
int d;
int e;
int x;
int y;
int i;
int k;
printf("输入大素数 p=");
scanf("%d",&p);
printf("输入大素数 q=");
scanf("%d",&q);
printf("输入公开秘钥 d=");
scanf("%d",&d);
printf("输入明文 x=");
scanf("%d",&x);
for(i=2;i<p;i++);
{
if (p%i==0)
{
printf("输入的p不是素数,不能进行加密运算.\n");
return 0;
}
}
for(i=2;i<q;i++)
{
if(q%i==0)
{
printf("输入的q不是素数,不能进行加密运算.\n");
return 0;
}
}
n=p*q;
Fn=(p-1)*(q-1);
k=0;
do
{
k=k+1;
}while((k*Fn+1)%d==0);
e=(k*Fn+1)/d;
y=x^e%n;
printf("==================================\n");
printf("素数p=%d\t素数q=%d\n",p,q);
printf("素数乘积n=%d\t欧拉数Fn=%d\n",n,Fn);
printf("公开密钥d=%d\t私人密钥e=%d\n",d,e);
printf("明文 x=%d\t密文 y=%d\n",x,y);
}