学堂 学堂 学堂公众号手机端

下面是一个简单的C语言实现RSA加密算法的示例代码: #include<stdio.h> #include

lewis 1年前 (2024-03-11) 阅读数 4 #技术

下面是一个简单的C语言实现RSA加密算法的示例代码:

#include<stdio.h> #include<stdlib.h> #include<math.h> intgcd(inta,intb){ if(b==0) returna; else returngcd(b,a%b); } intis_prime(intn){ if(n<=1) return0; for(inti=2;i<=sqrt(n);i++){ if(n%i==0) return0; } return1; } intgenerate_prime(){ intp; do{ p=rand()%100+1; }while(!is_prime(p)); returnp; } intmod_exp(intbase,intexp,intmod){ intresult=1; while(exp>0){ if(exp%2==1) result=(result*base)%mod; base=(base*base)%mod; exp/=2; } returnresult; } intmain(){ intp=generate_prime(); intq=generate_prime(); intn=p*q; intphi=(p-1)*(q-1); inte=2; while(gcd(e,phi)!=1){ e++; } intd=1; while((d*e)%phi!=1){ d++; } printf("Publickey:(%d,%d)\n",e,n); printf("Privatekey:(%d,%d)\n",d,n); intplaintext=123; intciphertext=mod_exp(plaintext,e,n); printf("Encryptedmessage:%d\n",ciphertext); intdecrypted_text=mod_exp(ciphertext,d,n); printf("Decryptedmessage:%d\n",decrypted_text); return0; }

此代码生成两个随机素数p和q,计算n和phi的值,选择一个公钥e和私钥d,然后使用公钥对明文进行加密,使用私钥对密文进行解密。请注意,此处的加密和解密仅用于示例目的,实际应用中应该使用更大的素数和更复杂的操作。


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门