用devC++代码编写仿射密码的代码
时间: 2024-10-14 18:08:20 浏览: 31
在Dev-C++中编写仿射密码的代码通常涉及到加密和解密的过程。仿射密码是一种简单的替换式密码,通过将明文字母按照给定的规则(如位移、乘法等)转换成密文。以下是一个基本的示例,使用ASCII值来进行简单位移:
```cpp
#include <iostream>
using namespace std;
// 仿射加密函数
char encrypt(char c, int shift) {
if (c >= 'A' && c <= 'Z') { // 处理大写字母
return ((c - 'A' + shift) % 26) + 'A';
} else if (c >= 'a' && c <= 'z') { // 处理小写字母
return ((c - 'a' + shift) % 26) + 'a';
}
return c; // 非字母字符保持不变
}
// 仿射解密函数
char decrypt(char c, int inverseShift) {
return encrypt(c, -inverseShift);
}
int main() {
string plaintext = "Hello, World!";
int key = 5; // 位移量
cout << "Original message: " << plaintext << endl;
for (char& c : plaintext) {
c = encrypt(c, key); // 加密每个字符
}
string ciphertext = plaintext;
cout << "Encrypted message: " << ciphertext << endl;
// 解密过程
for (char& c : ciphertext) {
c = decrypt(c, key); // 使用相同的键进行解密
}
cout << "Decrypted message: " << ciphertext << endl;
return 0;
}
```
在这个例子中,`encrypt` 和 `decrypt` 函数分别实现了加密和解密操作。用户可以根据需要修改`key`变量来改变加密的效果。
阅读全文