数字凯撒密码python
时间: 2023-10-12 16:20:18 浏览: 115
数字凯撒密码是一种简单的加密方法,它将明文中的每个字母按照一定的偏移量进行替换,从而生成密文。下面是一个用 Python 实现数字凯撒密码的例子:
```python
def encrypt(text, shift):
result = ""
for char in text:
if char.isalpha():
if char.isupper():
result += chr((ord(char) + shift - 65) % 26 + 65)
else:
result += chr((ord(char) + shift - 97) % 26 + 97)
else:
result += char
return result
def decrypt(text, shift):
result = ""
for char in text:
if char.isalpha():
if char.isupper():
result += chr((ord(char) - shift - 65) % 26 + 65)
else:
result += chr((ord(char) - shift - 97) % 26 + 97)
else:
result += char
return result
```
这里定义了两个函数,`encrypt` 和 `decrypt`,分别用于加密和解密。它们都接受两个参数:`text` 表示要加密或解密的文本,`shift` 表示偏移量。
在加密过程中,我们遍历文本中的每个字符,如果它是字母,就根据它的大小写情况计算出偏移后的字符,并将其拼接到结果字符串中。如果它不是字母,就直接拼接到结果字符串中。解密过程类似,只是将偏移量取相反数。
下面是一个例子,演示了如何使用这个函数加密和解密一个字符串:
```python
text = "hello, world!"
shift = 3
encrypted = encrypt(text, shift)
print(encrypted) # "khoor, zruog!"
decrypted = decrypt(encrypted, shift)
print(decrypted) # "hello, world!"
```
在这个例子中,我们将字符串 "hello, world!" 加密了 3 个字符,得到了密文 "khoor, zruog!",然后又解密回原来的明文。
阅读全文