Advertisement
tresonance

encrypt

Sep 27th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.36 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. int         is_lower(char c) {
  6.     return (c >= 'a' && c <= 'z');
  7. }
  8.  
  9. int         is_upper(char c) {
  10.     return (c >= 'A' && c <= 'Z');
  11. }
  12.  
  13. char        *encrypt_with_number_key(char *str, int key) {
  14.     int     i = 0;
  15.  
  16.     while(str[i])
  17.     {
  18.         if(is_lower(str[i])){
  19.             str[i] = (str[i] - 'a'  + key)%26 + str[i];
  20.         }
  21.         else if(is_upper(str[i])){
  22.             str[i] = (str[i] - 'A'  + key)%26 + str[i];
  23.         }
  24.         i++;
  25.     }
  26.     return str;
  27. }
  28.  
  29. char        *encrypt_with_string_key(char *str, char key[]){
  30.     int     i = 0;
  31.  
  32.     while(str[i])
  33.     {
  34.         if(is_lower(str[i])){
  35.             str[i] = str[i] + ((str[i] - 'a') +
  36.             is_lower(key[i%strlen(key)]) ? key[i%strlen(key)] - 'a' :  is_upper(key[i%strlen(key)]) ? key[i%strlen(key)] - 'A': 0)%26 ;
  37.         }
  38.         else if(is_upper(str[i])){
  39.             str[i] = str[i] + ((str[i] - 'A') +
  40.             is_lower(key[i%strlen(key)]) ? key[i%strlen(key)] - 'a' :  is_upper(key[i%strlen(key)]) ? key[i%strlen(key)] - 'A': 0)%26 ;
  41.  
  42.         }
  43.         i++;
  44.     }
  45.     return str;
  46. }
  47.  
  48.  
  49. int             main(int argc, char **argv)
  50. {
  51.     if(argc == 4)
  52.     {
  53.         if(atoi(argv[3]) == 0)
  54.         {
  55.  
  56.             char *s = encrypt_with_number_key(&argv[1][0], atoi(argv[2]));
  57.             printf("String:%s\nCipher:%s\n",argv[1], s);
  58.         }
  59.  
  60.         if(atoi(argv[3]) == 1)
  61.         {
  62.  
  63.             char *s = encrypt_with_string_key(&argv[1][0], argv[2]);
  64.             printf("String:%s\nCipher:%s\n",argv[1],s);
  65.         }
  66.  
  67.     }
  68.     return (0);
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement