最初的密码程序是在Hirst First c里面看到的,大概内容如下:
对待加密的字符串的每一个字符和某个数值进行一次按位异或得到密文,再进行一次按位异或得到明文。
原文主要代码片段:
//加密解密程序
void encrypt(char *message)
{
while (*message) {
//对message的每一个字符和31进行按位异或
*message = *message ^ 31;
message++;
}
}
补充知识:按位异或的结果是“同位得1,异位得0”。
比如数值2和数值1进行按位异或的情况如下:
2对应的二进制表示:10
1对应的二进制表示:01
2^1的结果最终表示:00
这个时候再把2^1的结果和1进行按位异或
01
00
10
既然可以和某个数值进行按位异或进行加密,那么是否可以和某个字符串进行按位异或呢,答案是可以。
原理如下:待加密的密文的每一个字符和一个密匙(任意字符串) 的每一个字符分别进行一次按位异或进行加密解密即可。
encrypt.c是原文程序;encrypt2.c是我改编的程序,可以在你的项目中使用哦^^
标签: <无>