用c++/java、python编程实现一种加密算法,能完成加密和解密工作。
时间: 2024-10-12 22:14:14 浏览: 32
在C++中,我们可以使用简单的Caesar Cipher(凯撒密码)作为示例,这是一种替换加密技术,通过将明文字符按照字母表位移固定距离进行加密。下面是一个基础版本的C++实现:
```cpp
#include <iostream>
#include <string>
std::string encryptCaesar(const std::string& plaintext, int shift) {
std::string ciphertext;
for (char c : plaintext) {
if (isalpha(c)) {
c = islower(c) ? 'a' + ((c - 'a' + shift) % 26) : 'A' + ((c - 'A' + shift) % 26);
}
ciphertext += c;
}
return ciphertext;
}
std::string decryptCaesar(const std::string& ciphertext, int shift) {
return encryptCaesar(ciphertext, -shift);
}
int main() {
std::string message = "Hello, World!";
int shift = 3; // 示例位移值
std::string encrypted = encryptCaesar(message, shift);
std::cout << "Encrypted: " << encrypted << std::endl;
std::string decrypted = decryptCaesar(encrypted, shift);
std::cout << "Decrypted: " << decrypted << std::endl;
return 0;
}
```
在Python中,同样可以编写凯撒密码的实现:
```python
def caesar_encrypt(text, shift):
encrypted_text = ""
for char in text:
if char.isalpha():
shift_amount = shift % 26
if char.islower():
encrypted_text += chr((ord(char) - ord('a') + shift_amount) % 26 + ord('a'))
else:
encrypted_text += chr((ord(char) - ord('A') + shift_amount) % 26 + ord('A'))
else:
encrypted_text += char
return encrypted_text
def caesar_decrypt(text, shift):
return caesar_encrypt(text, -shift)
message = "Hello, World!"
shift = 3
encrypted = caesar_encrypt(message, shift)
print("Encrypted:", encrypted)
decrypted = caesar_decrypt(encrypted, shift)
print("Decrypted:", decrypted)
```
这两个例子展示了如何使用C++和Python实现基本的凯撒密码加密和解密功能。
阅读全文