異或運算:^
定義:它的定義是:兩個值相同時,返回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 0x86int 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...