第3关:凯撒加密python写法
时间: 2024-10-22 15:07:31 浏览: 50
凯撒加密,也称为移位密码,是一种简单的替换式加密技术,通过将明文中的每个字母按照固定的位置向后移动来实现加密。在Python中,你可以使用循环和字符处理的方式来编写第3关的凯撒加密算法。下面是一个基础的实现示例:
```python
def caesar_cipher(text, shift):
encrypted_text = ""
for char in text:
if char.isalpha():
# 对大写字母和小写字母分开处理
offset = 65 if char.isupper() else 97
new_char = chr((ord(char) - offset + shift) % 26 + offset)
encrypted_text += new_char
else:
encrypted_text += char # 非字母字符保持不变
return encrypted_text
# 示例使用
plaintext = "Hello, World!"
shift_amount = 3
encrypted_text = caesar_cipher(plaintext, shift_amount)
print(f"原文: {plaintext}")
print(f"加密后: {encrypted_text}")
相关问题
第1关:学习-Python循环结构之while循环实现凯撒密码加密
在Python中,凯撒密码是一种简单的替换加密技术,通过将明文中的每个字符按照字母表向前或向后移动固定的位数来进行加密。while循环可以用来实现这种加密过程,特别是当知道固定偏移量的时候。
以下是一个基本的while循环实现凯撒密码加密的例子,假设偏移量(key)为3:
```python
def caesar_cipher_encrypt(plaintext, key):
encrypted_text = ""
for char in plaintext:
# 确保只处理字母,忽略其他字符
if 'a' <= char <= 'z':
new_char_code = ord(char) + key % 26 # 使用取模运算防止超出字母范围
encrypted_text += chr(new_char_code)
elif 'A' <= char <= 'Z':
new_char_code = ord(char) + key % 26 # 大写字母同样处理
encrypted_text += chr(new_char_code)
else:
encrypted_text += char # 非字母字符保持不变
return encrypted_text
# 测试
plaintext = "Hello, World!"
key = 3
encrypted_message = caesar_cipher_encrypt(plaintext, key)
print(f"原文字母:{plaintext}")
print(f"加密后的字母:{encrypted_message}")
请按照以下要求用python编写:凯撒加密。凯撒加密是简单的消息编码方式,将字母移动常量位K。用户输入明文字符串,系统输出凯撒加密后的密文。例如设置常量K=3,输入字符串abcABZ,输出凯撒加密后: defDEC。 <
pre>
# 凯撒加密程序
def caesar_cipher(plaintext, key):
ciphertext = ''
for char in plaintext:
if char.isalpha():
# 判断字符是否是字母
ascii_code = ord(char) + key
if char.islower() and ascii_code > ord('z'):
# 如果是小写字母且加密后超出了范围,则回到a开始循环
ascii_code -= 26
elif char.isupper() and ascii_code > ord('Z'):
# 如果是大写字母且加密后超出了范围,则回到A开始循环
ascii_code -= 26
ciphertext += chr(ascii_code)
else:
# 如果不是字母,则直接添加
ciphertext += char
return ciphertext
# 测试程序
plaintext = 'abcABZ'
key = 3
ciphertext = caesar_cipher(plaintext, key)
print(ciphertext)
</pre>
阅读全文