用python:编写函数,实现凯撒加密算法,从键盘输入字符串(明文)和秘钥k,输出加密后的字符串,其中k为每个英文字母在字母表中后面的第k个字母,字母表首尾循环相接。
时间: 2024-03-14 11:46:20 浏览: 190
可以使用以下代码实现凯撒加密算法:
```python
def caesar_cipher(text, key):
"""实现凯撒加密算法"""
encrypted_text = ""
for char in text:
if char.isalpha():
# 将字母转换为ASCII码并进行加密操作
encrypted_char = chr((ord(char) - 65 + key) % 26 + 65)
else:
encrypted_char = char
encrypted_text += encrypted_char
return encrypted_text
```
其中,`text`为输入的明文字符串,`key`为秘钥,表示每个英文字母在字母表中后面的第k个字母。该函数首先遍历输入的明文字符串中的每个字符,如果是字母则进行加密操作,否则直接添加到加密后的字符串中。加密操作分为以下几步:
1. 将字母转换为ASCII码,减去65后得到该字母在字母表中的位置;
2. 加上秘钥k;
3. 对26取模,得到加密后字母在字母表中的位置;
4. 再加上65,将加密后字母的ASCII码转换为字母。
最后返回加密后的字符串。
相关问题
编写函数,实现凯撒加密算法,从键盘输入字符串(明文)和秘钥k,输出加密后的字符串,其中k为每个英文字母在字母表中后面的第k个字母,字母表首尾循环相接。
好的,以下是实现凯撒加密算法的 Python 函数:
```python
def caesar_encrypt(plain_text, k):
cipher_text = ""
for char in plain_text:
if char.isalpha():
base = 65 if char.isupper() else 97
cipher_text += chr((ord(char) - base + k) % 26 + base)
else:
cipher_text += char
return cipher_text
```
函数接受两个参数,分别是明文和秘钥k。在循环中,我们逐个遍历明文中的字符,如果是英文字母,就计算出其加密后的字符,并将其添加到密文中。如果不是英文字母,就直接将其添加到密文中。最后,返回加密后的密文。
注意,上面代码中的 `65` 和 `97` 分别表示大写字母和小写字母在 ASCII 码表中的起始位置。在计算加密后的字符时,我们需要根据原字符的大小写来选择相应的起始位置。同时,将加密后的字符的 ASCII 码表值转换为字符时,需要加上相应的起始位置,以便得到正确的字符。
用python编写加密函数,使用凯撒加密方法对字符串加密,并展示成果
好的,我可以帮您展示一个使用凯撒加密算法对字符串加密的Python代码:
```
def caesar_cipher(plain_text, shift):
cipher_text = ""
for char in plain_text:
# 如果字符是字母
if char.isalpha():
# 将字符转换为 ASCII 码
ascii_code = ord(char)
# 判断字符是大写字母还是小写字母
if ascii_code >= 65 and ascii_code <= 90:
# 对大写字母进行移位加密
cipher_ascii = (ascii_code - 65 + shift) % 26 + 65
elif ascii_code >= 97 and ascii_code <= 122:
# 对小写字母进行移位加密
cipher_ascii = (ascii_code - 97 + shift) % 26 + 97
# 将 ASCII 码转换回字符
cipher_char = chr(cipher_ascii)
else:
# 如果字符不是字母,直接保留原样
cipher_char = char
cipher_text += cipher_char
return cipher_text
# 示例
plain_text = "Hello, world!"
shift = 3
cipher_text = caesar_cipher(plain_text, shift)
print(cipher_text) # 输出:Khoor, zruog!
```
这个函数接受两个参数,分别是明文和移位数。在函数内部,我们遍历明文字符串中的每个字符,如果字符是字母,就根据移位数对其进行加密。加密的方法是将大写字母移位后仍然是大写字母,小写字母移位后仍然是小写字母,同时保持字母顺序。如果字符不是字母,直接保留原样。最后返回密文字符串。
阅读全文