c语言对字母实现替换加密
时间: 2024-10-15 15:26:24 浏览: 38
在C语言中,实现简单的字母替换加密通常涉及到创建一个字符映射表,将明文中的每个字母替换为表中对应位置的密文字母。这可以是一个固定的替换规则,比如Caesar密码中的位移,也可以是更复杂的替换规则,如凯撒密码的多种位移组合。
下面是一个基本的Caesar密码加密示例,它将每个小写字母按照固定的位移进行替换:
```c
#include <stdio.h>
#include <string.h>
char shift(char c, int s) {
if ('a' <= c && c <= 'z') {
c = (c - 'a' + s) % 26 + 'a';
}
return c;
}
void caesar_encrypt(char* plaintext, char* key) {
int len = strlen(plaintext);
for (int i = 0; i < len; ++i) {
plaintext[i] = shift(plaintext[i], key[i]);
}
}
int main() {
char plaintext[] = "hello world";
char key[] = "3"; // 位移量,这里只替换每个字符一次
caesar_encrypt(plaintext, key);
printf("Encrypted text: %s\n", plaintext); // 输出加密后的结果
return 0;
}
```
在这个例子中,`shift` 函数根据给定的位移值移动字母表的位置,而 `caesar_encrypt` 函数遍历输入字符串并对每个字符应用加密。
阅读全文