三九宝宝网宝宝教育教学论文

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

01月06日 编辑 39baobao.com

[排列多个数大小的C语言程序]#include<stdio.h> void main() { float a[4],tmp; int i,j; printf("enter 4 data\n"); scanf("%f %f %f %f",&a[0],&a[1],&a[2],&a[3]); for (i=0;i<3;i++) for (j=i;j<4;j++)...+阅读

#include "stdafx.h"

#include

#include

int isP(int m)

{

int i;

for(i=2;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

{

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

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;

}

以下为关联文档:

用C语言程序编写输入三个数并输出最大值的程序正确代码: #include<stdio.h> int max(int a,int b,int c); int main() { int a = 0,b = 0,c = 0,x; scanf("%d %d %d",&a,&b,&c); x=max(a,b,c); printf("max=%d\n",x); return...

用汇编语言程序实现一下C效果mov ax, m mov dx, n cmp ax, dx je label1 jl label2 sub ax, dx jmp label1 label2: sub dx, ax label2: label1: 有点小错误,修改了 mov ax, m mov dx, n cmp ax, dx je l...

汇编语言冒泡排序算法N equ 10.model small .data array dw N dup(?) .code main proc far mov ax,data mov ds,ax mov cx,Ndec cxloop1: mov di,cx mov bx,0 loop2: mov ax,array[bx] cmp ax,ar...

汇编语言:编写子程序将内容变量arr中的10个字数用冒泡排序算法将数据段DATA开始的16个数排序,前小后大,程序示例如下: DATAS SEGMENT arr DB 74,68,58,66,69,254,186,6,10,98,34,90,128,222,33,0 COUNT DB 10 DATAS ENDS CODES SEGMENT ASS...

易语言如何在高级表格这一控件上做运算法1.下列叙述正确的是(C)(A)计算机中所存储处理的信息是模拟信号(B)数字信息易受外界条件的影响而造成失真(C)光盘中所存储的信息是数字信息(D)模拟信息将逐步取代数字信息分析:计算机...

为什么boot loader由汇编和c语言程序俩部分组成我正好是做boot loader的,欢迎互相讨论。为什么需要用用汇编呢,我们知道,C语言运行必须要有栈,栈就是用来运行的时候存储函数的局部变量,函数调用的返回地址,还有函数调用时的现场...

c语言程序里sizeof是什么意思sizeof 是关键字不是函数,其实就算不知道它是否为32 个关键字之一时,我们也可以借助编译器确定它的身份。看下面的例子:记住:sizeof 在计算变量所占空间大小时,括号可以省略,而计...

求一个c语言程序能输出一个大的爱心用符号拼成的不能用printf#include int n; void draw(int n) { int i,j; for (i=1-(n>>1);iif (i>=0) { for (j=0;jfor (j=1;jputchar("\n"); } else { for (j=i;jfor (j=1;jfor (j=1;jfor (j=1;jputch...

RSA加密算法怎样用C语言实现/*数据只能是大写字母组成的字符串。 加密的时候,输入Y,然后输入要加密的文本(大写字母) 解密的时候,输入N,然后输入一个整数n表示密文的个数,然后n个整数表示加密时候得到的密文。...

推荐阅读
图文推荐