亚洲一级免费看,特黄特色大片免费观看播放器,777毛片,久久久久国产一区二区三区四区,欧美三级一区二区,国产精品一区二区久久久久,人人澡人人草

C語言

C語言如何使用異或(xor)加密或解密文件

時間:2025-03-26 13:45:19 C語言 我要投稿
  • 相關(guān)推薦

C語言如何使用異或(xor)加密或解密文件

  C語言使用異或(xor)函數(shù)可以加密或解密文件你知道嗎?你知道C語言如何使用異或(xor)加密或解密文件嗎?下面是小編為大家?guī)淼年P(guān)于C語言如何使用異或(xor)加密或解密文件的知識,歡迎閱讀。

  C語言如何使用異或(xor)加密或解密文件

  xor_encrypt.c

  /** XOR 加密/解密文件 */

  #define TRUE 1

  #define FALSE 0

  #include

  #include

  #include

  #include // 如果在/usr/include/找不到,可以在/usr/include/sys/復(fù)制過去

  // 輸出信息

  void msg_log(char *str);

  // 判斷文件是否存在

  int file_exists(char *filename);

  // 主函數(shù)

  //更多精彩內(nèi)容:http://www.bianceng.cn/Programming/C/

  int main(int argc, char *argv[]){

  int keylen, index=0;

  char *source, *dest, *key, fBuffer[1], tBuffer[20], ckey;

  FILE *fSource, *fDest;

  source = argv[1]; // 原文件

  dest = argv[2]; // 目的文件

  key = argv[3]; // 加密字串

  // 檢查參數(shù)

  if(source==NULL || dest==NULL || key==NULL){

  msg_log("param error usage:xor_encrypt source dest key e.g ./xor_encrypt o.txt d.txt 123456");

  exit(0);

  }

  // 判斷原文件是否存在

  if(file_exists(source)==FALSE){

  sprintf(tBuffer,"%s not exists",source);

  msg_log(tBuffer);

  exit(0);

  }

  // 獲取key長度

  keylen = strlen(key);

  fSource = fopen(source, "rb");

  fDest = fopen(dest, "wb");

  while(!feof(fSource)){

  fread(fBuffer, 1, 1, fSource); // 讀取1字節(jié)

  if(!feof(fSource)){

  ckey = key[index%keylen]; // 循環(huán)獲取key

  *fBuffer = *fBuffer ^ ckey; // xor encrypt

  fwrite(fBuffer, 1, 1, fDest); // 寫入文件

  index ++;

  }

  }

  fclose(fSource);

  fclose(fDest);

  msg_log("success");

  exit(0);

  }

  //輸出信息

  void msg_log(char *str){

  printf("%s ", str);

  }

  // 判斷文件是否存在

  int file_exists(char *filename){

  return (access(filename, 0)==0);

  }

  這張圖如果使用php來處理需要 2秒 左右,但用C處理只需要 130毫秒。

  fdipzone@ubuntu:~/C$ gcc -o xor_encrypt xor_encrypt.c

  fdipzone@ubuntu:~/C$ time ./xor_encrypt 1280.jpg 1280en.jpg '@#$%^&*()_DFGHJKadsklfjasdf'

  success

  real 0m0.139s

  user 0m0.060s

  sys 0m0.070s


【C語言如何使用異或(xor)加密或解密文件】相關(guān)文章:

C語言文件的使用方法08-01

PHP如何使用AES加密算法進行數(shù)據(jù)加密和解密06-07

C語言EOF如何使用08-29

C語言文件08-28

C語言中如何使用sscanf08-27

如何使用C語言數(shù)組指針09-14

BIOS設(shè)置的加密與解密07-04

C語言頭文件如何避免重復(fù)包含06-01

C語言的文件概念07-18