• c异或加密与解密


    void main(void)
    {
     int src=54;
     int pwd=32;
     int dst=0;
    
     dst=src^pwd;
     printf(" Encryption: %d\n",dst);
    
     src=dst^pwd;
     printf(" Decryption: %d\n",src);
    } 
    
    异或一次就加密了,再异或一次又还原了.

    实际应用中,常用此方法拓展结合MAC地址加密解密文件,如下:

    bool file_encrypt(char* data, int fmoive_type)
    {
     if( fd == NULL )
     {
      return false;
     }
     else
     {
      char en_mac[12];
      
      fseek(fd, 0, SEEK_SET);
      fread(en_mac, sizeof(char), 12, fd);
      
      //avi
      if( fmoive_type == 0 )
      {
       en_mac[0] = en_mac[0]^data[0];
       en_mac[0] = en_mac[0]^data[1];
       
       en_mac[1] = en_mac[1]^data[3];
       en_mac[1] = en_mac[1]^data[4];
       
       en_mac[2] = en_mac[2]^data[6];
       en_mac[2] = en_mac[2]^data[7];
       
       en_mac[3] = en_mac[3]^data[9];
       en_mac[3] = en_mac[3]^data[10];
       
       en_mac[8] = en_mac[8]^data[12];
       en_mac[8] = en_mac[8]^data[13];
       
       en_mac[9] = en_mac[9]^data[15];
       en_mac[9] = en_mac[9]^data[16];
      }
      
      //mp4
      if( fmoive_type == 1 )
      {
       //printf("en_mac[0] is %x\n", en_mac[0]);
       en_mac[0] = en_mac[0]^data[0];
       //printf("en_mac[0] is %x\n", en_mac[0]);
       en_mac[0] = en_mac[0]^data[1];
       //printf("en_mac[0] is %x\n", en_mac[0]);
       
       en_mac[1] = en_mac[1]^data[3];
       en_mac[1] = en_mac[1]^data[4];
       
       en_mac[2] = en_mac[2]^data[6];
       en_mac[2] = en_mac[2]^data[7];
       
       en_mac[4] = en_mac[4]^data[9];
       en_mac[4] = en_mac[4]^data[10];
       
       en_mac[5] = en_mac[5]^data[12];
       en_mac[5] = en_mac[5]^data[13];
       
       en_mac[6] = en_mac[6]^data[15];
       en_mac[6] = en_mac[6]^data[16];
      }
      
      fseek(fd, 0, SEEK_SET);
      
      fwrite(en_mac, sizeof(char), 12, fd);
     }
     
     return true;
    }

     

  • 相关阅读:
    word break II
    leetcode新题
    tensorflow数据读取过程
    python文本编辑: re.sub-------读取文本,去除指定字符并保存
    Anaconda安装及虚拟环境搭建教程(linux)
    语音合成
    关于Python错误提示: 'str' object is not callable
    语音识别学习阶段性总结(一)
    kaldi学习
    kaldi学习
  • 原文地址:https://www.cnblogs.com/fx2008/p/2231867.html
Copyright © 2020-2023  润新知