当前位置:   article > 正文

C语言实现RSA的简单加解密_rsa加密算法c语言实现

rsa加密算法c语言实现

C语言实现 RSA的简单加密解密

完整版可以查看我的另一篇文章:【完整版】C语言实现RSA的加解密

RSA我就不普及了,网上都有,现在用我的实验报告实现一下:
需要的数据有:
两个大素数p,q;
n=pq;
t=(p-1)
(q-1);
公钥e满足(e,t)=1;
私钥d满足de==1(mod n);
加密公式c=m^e(mod n),c是密文,m是明文;
加密的时候注意明文m<n;

下面再展示一下代码块:

//判断两个数是不是互素。 
void gcd(int p,int q){
   
	int temp1,temp2;   //q=temp2*p+temp1 ;
	if(q<p){
   
		temp1=p;
		p=q;
		q=temp1;
	}
	temp1=q%p,temp2=q/p; 
	while(temp1!=0){
   
		
	    q=p;p=temp1;
		temp1=q%p;temp2=q/p;
		}
		if(temp1==0&&temp2==q){
   
			printf("符合条件!\n");
	    }
	    else{
   
	    	printf("不符合条件!\n");
		}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
//求e关于模(p-1)(q-1)的逆元d:即私钥 
int extend(int e,int t){
   
	int d;
	for(d=0;d<t;d++){
   
		if(e*d%t==1)
	        return d;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

加密函数中要把符号明文转换成数字明文才可以加密,加密原理是依次把一个个字母对应的ascii码加密;加密函数中的加密公式pow(m,e)%n可能会导致溢出,这是解决之后的:</

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/731282
推荐阅读
相关标签
  

闽ICP备14008679号