最初的密碼程序是在Hirst First c里面看到的,大概內(nèi)容如下: 對待加密的字符串的每一個字符和某個數(shù)值進行一次按位異或得到密文,再進行一次按位異或得到明文。 原文主要代碼片段: //加密解密程序 void encrypt(char *message) { while (*message) { //對message的每一個字符和31進行按位異或 *message = *message ^ 31; message++; } } 補充知識:按位異或的結(jié)果是“同位得1,異位得0”。 比如數(shù)值2和數(shù)值1進行按位異或的情況如下: 2對應(yīng)的二進制表示:10 1對應(yīng)的二進制表示:01 2^1的結(jié)果最終表示:00 這個時候再把2^1的結(jié)果和1進行按位異或 01 00 10 既然可以和某個數(shù)值進行按位異或進行加密,那么是否可以和某個字符串進行按位異或呢,答案是可以。 原理如下:待加密的密文的每一個字符和一個密匙(任意字符串) 的每一個字符分別進行一次按位異或進行加密解密即可。 encrypt.c是原文程序;encrypt2.c是我改編的程序,可以在你的項目中使用哦^^ 標簽: <無> 代碼片段(2)[全屏查看所有代碼]1. [文件] encrypt.c ~ 375B 下載(3)
2. [文件] encrypt2.c ~ 577B 下載(1)
|
|