如何用C语言程序实现RSA算法?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

如何用C语言程序实现RSA算法?

2018-07-15 09:39:52 2617 2
求~具体程序
取消 提交回答
全部回答(2)
  • 聚小编
    2019-07-17 22:56:18
    http://www.example-code.com/vcpp/rsa_generateKey.asp这里应该有您要的东西,希望能帮助到您
    0 0
  • 云篆
    2019-07-17 22:56:18
    #include "stdafx.h"
    #include<math.h>
    #include<stdio.h>
    int isP(int m)
    {
    int i;
    for(i=2;i<m;i++)
    if(m % i==0)return 0;
    return 1;
    }
    int num(int m,int k)
    {
    int i=0;
    for(m=m;k>0;m++)
    if(isP(m))
    {
    k--;
    return m;
    }
    }
    int main(int argc, char* argv[])
    {
    int P,Q,E,D,i,k,fn,c=0,j=0,t=1,f1=1,l=2;
    int a[10];
    long N0,N1;
    long PT,CT,N;
    printf("请输入第一个数:");
    scanf("%d",&P);
    P=num(P,1);
    printf("请输入比第一次大的数:");
    scanf("%d",&Q);
    Q=num(Q,1);
    N=P*Q;
    N1=(P-1)*(Q-1);
    N0=N1;
    while(N1>=3)
    {

    while(N1%l!=0)
    {
    l++;
    }
    a[j++]=l;
    N1=N1/l;

    }
    printf("请输入一个奇数E,若E不合适,系统将会找一个比E大的合适值:");
    scanf("%d",&E);
    for(i=E;t>0;i=i+2)
    {
    for(k=0;k<j+1;k++)
    {
    if(E%a[k-1]==0) break;
    else if(k==j)
    {
    t--;
    }
    E=i;
    }
    }
    for(k=1; ;k++)
    {
    if((N0*k+1)%E==0)
    {
    D=(N0*k+1)/E;
    if((D*E)%N0==1)
    break;
    }

    }
    printf("请输入明文:");
    scanf("%ld",&PT);
    for(i=1;i<=E;i++)
    {
    fn=(f1*PT)%N;
    f1=fn;
    CT=fn;
    }
    f1=1;
    for(i=1;i<=D;i++)
    {
    fn=(f1*CT)%N;
    f1=fn;
    PT=fn;
    }
    printf("P=%d,Q=%d\n",P,Q);
    for(k=0;k<j;k++)
    printf("%d ",a[k]);
    printf("\n");
    printf("E=%d,D=%d,N=%ld\n",E,D,N);
    printf("密码是:%ld\n",CT);
    printf("明文是:%ld\n",PT);
    return 0;
    }
    0 0
添加回答
相关问答

1

回答

如何用C语言实现RSA算法?

2018-07-20 17:25:59 2694浏览量 回答数 1

4

回答

如何用C语言实现RSA算法

2018-07-18 11:38:47 2993浏览量 回答数 4

1

回答

怎样用c语言实现rsa算法

2018-07-16 17:52:17 1339浏览量 回答数 1

1

回答

C语言指针中,头节点是什么意思?有什么作用?

2022-03-30 17:17:58 165浏览量 回答数 1

1

回答

C语言指针是什么?

2022-03-29 17:28:51 305浏览量 回答数 1

1

回答

C语言指针传值和传地址问题

2016-06-06 09:46:05 1683浏览量 回答数 1

1

回答

C语言初始化数组导致指针重叠

2016-05-30 14:17:32 2115浏览量 回答数 1

4

回答

初学 C语言,请问有什么书或者习题集是可以强化指对指针的理解的吗?

2016-03-20 09:37:13 2132浏览量 回答数 4

1

回答

C语言:进程间传递指针来实现数据操作是否会有安全隐患?

2016-03-20 11:23:26 1857浏览量 回答数 1

1

回答

c语言,指针那一块,关于重新编写strlen函数

2016-03-19 14:15:05 1699浏览量 回答数 1
+关注
10071
文章
2994
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载