在C语言中,可以通过多种方法实现密码加密,这里,我们将介绍一种简单的加密技术——XOR(异或)加密,XOR加密是一种对称加密算法,即使用同一个密钥进行加密和解密,它的工作原理是将输入的每个字符与密钥进行异或操作,得到加密后的字符,解密时,再次使用相同的密钥进行异或操作,即可还原原始字符。
(图片来源网络,侵删)
1、我们需要包含必要的头文件,并定义一个加密函数xor_encrypt
,该函数接受一个字符串和一个密钥作为参数,返回加密后的字符串。
#include <stdio.h> #include <string.h> char *xor_encrypt(const char *input, const char *key) { int len = strlen(input); char *output = (char *)malloc(len + 1); for (int i = 0; i < len; i++) { output[i] = input[i] ^ key[i % strlen(key)]; } output[len] = ' '; return output; }
2、接下来,我们定义一个解密函数xor_decrypt
,该函数也接受一个字符串和一个密钥作为参数,返回解密后的字符串,解密过程与加密过程相同,只是顺序相反。
char *xor_decrypt(const char *input, const char *key) { int len = strlen(input); char *output = (char *)malloc(len + 1); for (int i = 0; i < len; i++) { output[i] = input[i] ^ key[i % strlen(key)]; } output[len] = ' '; return output; }
3、现在,我们可以编写一个简单的测试程序,用于验证加密和解密函数的正确性。
int main() { char input[] = "Hello, world!"; char key[] = "secret"; char *encrypted = xor_encrypt(input, key); char *decrypted = xor_decrypt(encrypted, key); printf("Original: %s ", input); printf("Encrypted: %s ", encrypted); printf("Decrypted: %s ", decrypted); free(encrypted); free(decrypted); return 0; }
4、编译并运行程序,观察输出结果,可以看到,加密后的字符串无法直接阅读,而解密后的字符串与原始字符串相同。
需要注意的是,XOR加密虽然简单易用,但安全性较低,容易被破解,在实际应用中,建议使用更复杂的加密算法,如AES等,为了保护密钥的安全,可以将密钥存储在安全的地方,而不是直接写在代码中。
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/348090.html