1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void encrypt(char* P, char* C,char* table)
  5. {
  6. int len;
  7. int i,j;
  8.  
  9. len=strlen(P);
  10.  
  11. for(i=0; i<len; i++){
  12. if(P[i]>='A' && P[i]<='Z')
  13. C[i]=table[P[i]-'A']-('a'-'A');
  14. else if(P[i]>='a' && P[i]<='z')
  15. C[i]=table[P[i]-'a'];
  16. else
  17. C[i]=P[i];
  18. }
  19. }
  20.  
  21. void decrypt(char* C, char* D, char* table)
  22. {
  23. int len;
  24. int i,j;
  25.  
  26. len=strlen(C);
  27.  
  28. for(i=0; i<len; i++){
  29. if(C[i]>='A' && C[i]<='Z')
  30. {
  31. for(j=0; j<26; j++)
  32. if((table[j]-('a'-'A'))==C[i])
  33. D[i]='A'+j;
  34. }
  35. else if(C[i]>='a' && C[i]<='z')
  36. {
  37. for(j=0; j<26; j++)
  38. if(table[j]==C[i])
  39. D[i]='a'+j;
  40. }
  41. else
  42. D[i]=C[i];
  43. }
  44. }
  45.  
  46.  
  47. int main()
  48. {
  49. char plain[50]="HelloWorld!MyNameisArgos";
  50. char crypt[50];
  51. char d_crypt[50];
  52. char replace_table[27]="lqkrmnedvwxaopbghifstucjyz";
  53.  
  54. strcpy(crypt,plain);
  55. printf("replace table : %s\n",replace_table);
  56.  
  57. encrypt(plain,crypt,replace_table);
  58. printf("encrypt message : %s\n",crypt);
  59.  
  60. strcpy(d_crypt,crypt);
  61. decrypt(crypt,d_crypt,replace_table);
  62. printf("decrypt message : %s\n",d_crypt);
  63.  
  64. return 0;
  65. }


'코드 저장소' 카테고리의 다른 글

[C] 폴리비우스 암호(Polibius cipher)  (0) 2017.03.15

+ Recent posts