RSA密码算法

  • H7_545418
    了解作者
  • 197.4KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-24 07:34
    上传日期
用C++实现的RSA密码算法(输入明文输出密文)。
RSA.zip
  • 5110369002-齐菁-RSA密码
  • Project1.dev
    1.1KB
  • 结果演示(不需要输入密文数字串).o
    9.5KB
  • 需要手动输入明文.png
    33.6KB
  • 不需手动输入密文.png
    22.9KB
  • Project1.layout
    210B
  • 需要输入密文数字串以获得明文.o
    9.9KB
  • 需要输入密文数字串以获得明文.cpp
    2KB
  • Makefile.win
    854B
  • Project1.exe
    469.6KB
  • 结果演示(不需要输入密文数字串).cpp
    1.8KB
  • message.h
    2.3KB
内容介绍
#include "message.h" #define N 100 #define M 128 int main(int argc, char *argv[]) { //随机产生大素数p,q; int p=rand()%M,q=rand()%M; while((sushu(p)!=1)||(sushu(q)!=1)||(p<M/2)||(q<M/2)){ p=rand()%M; q=rand()%M; } int n=p*q; int fn=(p-1)*(q-1); //随机产生e(1<e<fn); int e=rand()%fn; while((e==0)||((gongyueshu(fn,e))!=1)||(e>30)){ e=rand()%fn;} //用广义欧几里得除法得到d; int d=f1(e,fn); //明文s1=;(数字化处理); string s1m,mes; char c; int s1[N]={0}; int len=0; cout<<"p= "<<p<<"q= "<<q<<endl; cout<<" n=p*q= "<<n<<" fn=φ(n)= "<<fn<<endl; cout<<"e= "<<e<<endl; cout<<"d= "<<d<<endl; cout<<"please input the massage"<<endl; cin>>s1m; len=s1m.size(); c=getchar(); while(c==' '){ cin>>mes; s1m=s1m+" "+mes; len=s1m.size(); c=getchar();} f4(s1m,s1); int k=0; //运用模平方技术得到c=s1^e=s2(mod n); int s2[N]={0},ss[N]={0}; char s2m[N]={0}; k=0; while(s1[k]){ s2[k]=f6(s1[k],e,n); k++;} //把数字s2[N]变为密文 cout<<"the code is: "; k=0; while(s2[k]){ cout<<s2[k]<<" "; k++;} cout<<endl; //解密输入密文数字串 cout<<"input the code please(以空格间隔,以0表示结束)"<<endl; int ss2[N]={0}; k=0; cin>>ss2[0]; while(s2[k]){ k++; cin>>ss2[k];}//输入密文,以空格间隔,以0表示结束 k=0; while(ss2[k]){ ss[k]=f6(ss2[k],d,n); k++;} k=0; while(ss[k]){ f5(ss,s2m); k++;} cout<<"the message should be:"<<endl; k=0; while(s2m[k]){ cout<<s2m[k]; k++;} system("PAUSE"); return EXIT_SUCCESS; }
评论
    相关推荐
    • 有关C++算法的课程资源
      关于C++算法的课程 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去  掉不满足...
    • c++算法:图算法
      c++算法:图算法 程序 编程
    • C++算法分析及习题
      经典的c++ 算法 :背包问题、贪婪算法、最短路径等 如果你正在学习这方面的算法,这是不错的学习资料
    • C C++算法实例讲解
      给出了计算机算法中常见的各种算法,并给出了具体实现,可以作为备用
    • c++算法2000例
      c++算法2000例
    • visual C++ 算法排序系统
      做的小项目 vs2010 编写的运用了模板进行排序 做了一个礼拜的时间 拿出来分享下
    • 八皇后问题C++算法
      八皇后问题的C++算法,利用回溯算法输出全部可行解。
    • C++算法实例
      自己学习时手写各种算法排序 链表 归并排序 快速排序 希尔排序 选择排序 冒泡排序等是可以直接运行的解决方案
    • C++算法实现
      来自国外一个牛人的算法实现源码,有100多个具体实现,并有充分的注释,可以学习借鉴。
    • 离散卷积 C++算法实现
      离散卷积 C++算法实现应用于各种滤波操作