在C语言中实现字符串加密,存在多种常见方法可供选择。从最基础的字符替换,到工业级的AES、DES对称加密,再到MD5、SHA等哈希算法,均能根据实际需求派上用场。具体选用哪种方案,完全取决于您的应用场景和安全等级要求。

为帮助您快速理解加密原理,我们先看一个基础的替换加密实现。这个示例虽然简单,但清晰展示了加密的核心流程——逐字符遍历并变更原始数据。
#include
void encrypt(char *str) {
char *ptr = str;
while (*ptr != '\0') {
*ptr = *ptr + 1; // 每个字符ASCII码值加1,实现简单加密
ptr++;
}
}
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
encrypt(str);
printf("Encrypted string: %s\n", str);
return 0;
}
上述代码定义了一个encrypt函数,它会逐字符遍历传入的字符串,并将每个字符的ASCII码值加1。因此,“Hello, World!”会变成“Ifmmp-!Xpsme\”。解密只需反向操作(每个字符减1)即可。当然,这仅是一个教学示例,其安全性几乎为零,因为规则过于简单,极易被破解。在实际项目中,您需要根据安全性、性能和复杂度的权衡,来选择合适的加密库或算法。例如,若需要不可逆的指纹验证,则应选用哈希算法;若需要传输安全,则应选用AES这类对称加密;而简单的恺撒密码式替换,只能用于对安全性要求不高的场景。
