凯撒密码使用c语言来实现
时间: 2024-09-25 21:11:15 浏览: 51
凯撒密码编程实现含代码
凯撒密码是一种简单的替换式加密技术,通过将明文中的每个字母按照字母表顺序向后(或向前)移动固定位数来进行加密。在C语言中实现凯撒密码,你可以创建一个函数,接收输入字符串、偏移量和操作方向(如左移或右移)。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
char caesar_cipher(char input_char, int shift, int direction) {
if (direction > 0) { // 向右移
if (input_char >= 'a' && input_char <= 'z') {
return ((input_char - 'a' + shift) % 26) + 'a';
} else if (input_char >= 'A' && input_char <= 'Z') {
return ((input_char - 'A' + shift) % 26) + 'A';
}
} else { // 向左移
if (input_char >= 'a' && input_char <= 'z') {
return ((input_char - 'a' - shift) % 26) + 'a';
} else if (input_char >= 'A' && input_char <= 'Z') {
return ((input_char - 'A' - shift) % 26) + 'A';
}
}
// 对于非字母字符,保持不变
return input_char;
}
void encrypt_ciphertext(char* plaintext, int shift, int direction) {
for (int i = 0; plaintext[i] != '\0'; i++) {
plaintext[i] = caesar_cipher(plaintext[i], shift, direction);
}
}
int main() {
char plaintext[] = "Hello, World!";
int shift = 3;
int direction = 1; // 右移
encrypt_ciphertext(plaintext, shift, direction);
printf("Encrypted text: %s\n", plaintext);
return 0;
}
```
在这个例子中,`encrypt_ciphertext`函数会处理整个字符串并加密它。当你运行这个程序时,给定的明文 "Hello, World!" 将会被加密。
阅读全文