凯撒密码简单加密界面算法

  
  
  
  
  1. /*  凯撒密码加密  And  解密 
  2. *   功能不算完善,只能正方向加密和反方向解密 
  3. *   也可以用加密,解密互逆的方式来进行明文反方向加密。 
  4. */ 
  5. //#include <stdio.h>    //之前使用getchar()时添加的 
  6. #include <iostream.h> 
  7.  
  8. void encryption(char *p_R, char *p_M, int m_k );    //加密的函数 
  9. void decipher(char *p_R, char *p_M, int m_k);       //解密的函数 
  10. void main() 
  11.     char R[10]; 
  12.     char M[10]; 
  13.     int k=0; 
  14.     int change = 0; 
  15.      
  16. //  while(!change) 
  17. //  { 
  18.         cout<<"选择操作, 1 为加密, 2 为解密 :"<<endl; 
  19.         cin>>change; 
  20.         if (change==1) 
  21.         { 
  22.             cout<<"输入明文:"
  23.             cin>>R;          
  24.             cout<<"输入K值(1~25)"
  25.             cin>>k; 
  26.  
  27.             encryption(R,M,k); 
  28. //          break; 
  29.         }else if (change==2) 
  30.         { 
  31.             cout<<"输入密文:"
  32.             cin>>R;          
  33.             cout<<"输入K值(1~25)"
  34.             cin>>k; 
  35.  
  36.             decipher(R,M,k); 
  37. //          break; 
  38.         } 
  39.         else 
  40.         { 
  41.             cout<<"输入有错,请重新输入"<<endl; 
  42.             change = 0; 
  43.         } 
  44. //  }// end of while    输入非法后循环错误, ERROR :提示死循环 
  45.      
  46.     cout<<"K is :"<<k<<endl; 
  47.      
  48.     cout<<"输入的为: "<<R<<endl; 
  49.     cout<<"转换后为: "<<M<<endl; 
  50.  
  51. //加密 
  52. void encryption(char *p_R, char *p_M, int m_k ) 
  53.      
  54.     int i=0; 
  55.     while (p_R[i]) 
  56.     { 
  57.         p_M[i] = p_R[i] + m_k; 
  58.          
  59.         if (p_R[i]>='a' && p_R[i]<='z' && p_M[i]>'z'
  60.         { 
  61.             p_M[i] -= 26; 
  62.         } 
  63.         else if (p_R[i]>='A' && p_R[i]<='Z' && p_M[i]>'Z'
  64.         { 
  65.             p_M[i] -= 26; 
  66.         } 
  67.         i++; 
  68.     } 
  69.     p_R[i] = NULL; 
  70.     p_M[i] = NULL; 
  71.  
  72. //解密 
  73. void decipher(char *p_R, char *p_M, int m_k) 
  74.     int i=0; 
  75.     while (p_R[i]) 
  76.     { 
  77.         p_M[i] = p_R[i] - m_k; 
  78.          
  79.         if (p_R[i]>='a' && p_R[i]<='z' && p_M[i]<'a'
  80.         { 
  81.             p_M[i] += 26; 
  82.         } 
  83.         else if (p_R[i]>='A' && p_R[i]<='Z' && p_M[i]<'A'
  84.         { 
  85.             p_M[i] += 26; 
  86.         } 
  87.         i++; 
  88.     } 
  89.     p_R[i] = NULL; 
  90.     p_M[i] = NULL; 

 

你可能感兴趣的:(加密,解密)