c語言實現xor加密

2021-09-07 19:00:32 字數 1181 閱讀 4226

異或運算:^

定義:它的定義是:兩個值相同時,返回false,否則返回true。也就是說,xor可以用來判斷兩個值是否不同。

特點:如果對乙個值連續做兩次 xor,會返回這個值本身。

1010 ^ 1111

//第一次異或後結果:0101

0101 ^ 1111

//第二次異或後結果:1010

上面**中,原始值是1010,再任意選擇乙個值(上例是1111),做兩次 xor,最後總是會得到原始值1010。這 在數學上是很容易證明的。

加密應用:

xor 的這個特點,使得它可以用於資訊的加密。 

message xor key //

ciphertext

ciphertext xor key //

message

上面**中,原始資訊是message,金鑰是key,第一次 xor 會得到加密文字ciphertext。對方拿到以後,再用 key做一次 xor 運算,就會還原得到message

c語言實現:

#include #define key 0x86

int main(int argc, char *ar**)

}for(j=0;j)

puts(text);

for(j=0;j)

puts(text);

return0;

}

或者:

#include #include 

#include

#define key 0x86

intmain()

;

char encrypt[16]=,decode[16]=;

inti;

for(i = 0; i < strlen(p_data); i++)

for(i = 0; i < strlen(encrypt); i++)

printf(

"initial date: %s\n

",p_data);

printf(

"encrypt date: %s\n

",encrypt);

printf(

"decode date: %s\n

",decode);

return0;

}

c語言實現xor加密

異或運算 定義 它的定義是 兩個值相同時,返回false,否則返回true。也就是說,xor可以用來判斷兩個值是否不同。特點 如果對乙個值連續做兩次 xor,會返回這個值本身。1010 1111 第一次異或後結果 0101 0101 1111 第二次異或後結果 1010 上面 中,原始值是1010,...

c語言實現idea加密演算法

idea 資料加密演算法及實現 idea 對稱資料加密演算法,是我寫的第乙個關於加解密方面的演算法,在大學宿舍里弄了差不多將近二十個小時終於搞懂了。剛開始受到了 不良 資料的誤導走了很長時間的彎路,後來在圖書館看到了正確的介紹才終於把這個演算法給弄出來了。1 簡介idea,即國際資料加密演算法 是旅...

C語言實現檔案的加密解密

閒來無事,隨手翻了翻桌面上的c語言教程,意外發現了這段 就上機玩弄了一番,感覺有點實用性,寫了點注釋分享給大家。若有理解不到位的地方,還請大家批評指正 include includeint main int argc,char ar 以讀二進位制檔案的方式開啟指定檔案 if fpr fopen ar...