日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言中如何用xor,C语言如何使用异或xor加密或解密文件

發布時間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言中如何用xor,C语言如何使用异或xor加密或解密文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

C語言使用異或***xor***函數可以加密或解密文件你知道嗎?你知道C語言如何使用異或***xor***加密或解密文件嗎?下面是小編為大家帶來的’關于C語言如何使用異或***xor***加密或解密文件的知識,歡迎閱讀。

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

xor_encrypt.c

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

#define TRUE 1

#define FALSE 0

#include

#include

#include

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

// 輸出信息

void msg_log***char *str***;

// 判斷文件是否存在

int file_exists***char *filename***;

// 主函數

//更多精彩內容:

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]; // 加密字串

// 檢查參數

if***source==NULL || dest==NULL || key==NULL***{

msg_log***"param error 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字節

if***!feof***fSource******{

ckey = key[index%keylen]; // 循環獲取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,C语言如何使用异或xor加密或解密文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。