先给你第一个,声明:版权不轨我所有。
 RSA加密实例分析 
(源代码) 至于RSA的理论网上一大把,它是基于公钥加密体制的一种算法。这个实例主要是用来将某一重要文件绑定到一个IP地址上。 
把它拷贝下来,存为CODE.C,然后执行          GCC –O CODE CODE.C           然后用./ CODE E [IP ADDRESS] [FILENAME]对文件进行加密。或用 ./CODE D [IP ADDRESS] 进行解密整个过程中产生了两个中间文件,至于什么文件,你去试一试就知道啦! #include "stdio.h"  #include "string.h"    int e,d=1,n;     main(int argc,char *argv[])  {  int ip,fai,p=43,q=59,ch1,i=0,j=0,edch,dech=0;  char *num,*cha,ch,*file={"index.html"};  FILE *fp,*fp2;    if (argc<2)  {      printf("paramater error!");      exit(0);  }  if (argc>3)   {     file=argv[3];   }    //printf("%s,",file)   e=iptoint(argv[2]);  //printf("%s,%s",argv[1],argv[2]);  switch (*argv[1])  {  case 'e':     //printf("e=%d",e);    if ((fp2=fopen("encode.htm","w+"))==NULL)    {       printf("can't open file");       exit(0);    }  "code.c" 199L, 3571C    }    n=p*q;fai=(p-1)*(q-1);    if((fp=fopen(file,"r"))==NULL)    {       printf("can't open giving file");       exit(0);    }    else    {      while((ch1=fgetc(fp))!=EOF)      {           edch=fmod(ch1,e,n);           if (edch>0 && edch<10)           {     fprintf(fp2,"%s","000"); fprintf(fp2,"%d",edch);           }           else if (edch<100 && edch>10)           {     fprintf(fp2,"%s","00"); fprintf(fp2,"%d",edch);           }           else if (edch<1000 && edch>100)           {     fprintf(fp2,"%s","0"); fprintf(fp2,"%d",edch);           }           else if (edch<10000 && edch>1000)           {     fprintf(fp2,"%d",edch);           }           else                 fputc('\n',fp2);      }    }    close(fp);    close(fp2);    break;  case 'd':   // printf("d=%d",e);    if ((fp2=fopen("decode.html","w+"))==NULL)    {    if ((fp2=fopen("decode.html","w+"))==NULL)    {       printf("can't open file");       exit(0);    }    n=p*q;fai=(p-1)*(q-1);    while(((d*e)%fai)!=1)       d++;    if((fp=fopen("encode.htm","r"))==NULL)    {        printf("can't open file");        exit(0);    }    else    {  i=0;     //  printf("e=%d,d=%d,n=%d,",e,d,n);       while((ch=fgetc(fp))!=EOF)       {          if (i==4)          {             //dech=((int)num[0])*1000+((int)num[1])*100+((int)num[2])*10+(int)num[3];             //printf("yuan=%d,",dech);             dech=fmod(dech,d,n);             //printf("new=%d,",dech);             fprintf(fp2,"%c",dech);             i=0;             dech=0;             //           }           switch (ch)           {              case '9':dech=dech*10+9;break;              case '1':dech=dech*10+1;break;              case '2':dech=dech*10+2;break;              case '3':dech=dech*10+3;break;              case '4':dech=dech*10+4;break;              case '3':dech=dech*10+3;break;              case '4':dech=dech*10+4;break;              case '5':dech=dech*10+5;break;              case '6':dech=dech*10+6;break;              case '7':dech=dech*10+7;break;              case '8':dech=dech*10+8;break;              default:dech=dech*10;             }          // printf("dech=%d,",dech);           num[i]=ch;           i++;         }        dech=fmod(dech,d,n);        fprintf(fp2,"%c",dech);    }    close(fp);    close(fp2);    break;  default:     printf("Usage:code [option]...[Ip Address]...\n");     printf("List information about the option\n");     printf("e   bind ip address to index.html\n");     printf("d   decode from the encodeing file to index2.html");  }    }  int iptoint(ip)  char *ip;  {  int i,ei=0,len;  int prime=0;    len=strlen(ip);    len=strlen(ip);  for(i=0;i 
{        if(ip[i]>'0' && ip[i]<'9')        ei=ei+i*((int)ip[i]);  }  ei=ei/1000+(ei/100)%10+(ei/10)%10+ei%10;  //printf("%d",ei);  //len=ei/2;  //while(prime==0)  //indent: Standard input:2: Error:Unexpected end of file  while (((ei % 2)== 0) || ((ei % 3) == 0))  {   ei=ei+1;  }  /*    prime=1;      for (i=0;i 
    {          if((ei%i)==0)          {              ei--;              prime=0;              break;          }         }  }*/  return(ei);    }    int fmod(x, r, p)  int x,r,p;  {  int a,b,c=1;  a=x;b=r;  while (b!=0)  {     while ((b%2)==0)     {        b=b/2;a=(a*a)%p;     }     b=b-1;c=(a*c)%p;  }  return c;  } 
  (http://www.fanqiang.com)     进入【UNIX论坛】  --------------------------------------------------------------------------------