随机数加密算法的解密算法

      
解密程序就是利用加***把加密的文档即秘文用**恢复成原来的文档。算法实现的原理就是用**把秘文文档重新编号,然后按**的排序结果输出秘文,就可以得到原加密的文档,也就达到了解密的目的。
#include "mpi.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <iostream>
 
void main (int argc, char * argv[])
{
     char str[15];//用于保存加密的字符串 
     int myid, numprocs; //进程号、进程数
     int namelen;
    char processor_name[MPI_MAX_PROCESSOR_NAME];
    MPI_Status status;
    MPI_Init ( &argc, &argv );
    MPI_Comm_rank ( MPI_COMM_WORLD, &myid );
    MPI_Comm_size ( MPI_COMM_WORLD, &numprocs );
    MPI_Get_processor_name(processor_name,&namelen);   
    if(myid==0) //读取**信息,并把**传给1号进程。
     {
         FILE *key=fopen("key.txt","r");
         if(key){
         int temp;    
         temp=fgetc(key)-48;
         fprintf(stderr,"**:");
         /*读到文件结束,结束符为-1,ASCII码是-1-48=-49,所以把-49作为文件结束标志*/
         while(temp!=-49)
         {
              fprintf(stderr,"%d",temp);
              MPI_Send(&temp,1,MPI_INT,1,0,MPI_COMM_WORLD);
              temp=fgetc(key)-48;             
         }
         fprintf(stderr,"/n");
         MPI_Send(&temp,1,MPI_INT,1,0,MPI_COMM_WORLD);     
         }
     }else if(myid==1)//1号进程负责用接收到**解密加密的文档。
     {
         int recvnum=0;
         FILE *out=fopen("out.txt","r");//打开要解密的文档
         fgets(str,15,out);
         fprintf(stderr,"密文:");
         fprintf(stderr,str);
         fprintf(stderr,"/n");
         FILE *source=fopen("source.txt","w");//用于保存解密后的文档
         MPI_Recv(&recvnum,1,MPI_INT,0,0,MPI_COMM_WORLD,&status);
         fprintf(stderr,"解密后的原文是:");
         while(recvnum!=-49)//读到文件尾,结束
         {
              fprintf(stderr,"%c",str[recvnum]);
              fprintf(source,"%c",str[recvnum]);
              MPI_Recv(&recvnum,1,MPI_INT,0,0,MPI_COMM_WORLD,&status);             
         }
         fprintf(stderr,"/n");      
     }
   fprintf( stderr, "Process %d of %d on %s/n",myid, numprocs, processor_name );   
   MPI_Finalize ( );
}
随机数加密算法的解密算法
       说明:利用加密后的密文:out.txt和解***key.txt解密,密文为:udenctu.jb,**为9805721643。如上图所示,解密后的文档保存到source.txt中。