编写一个python程序,定义一个字符加密函数,加密规则是把字符ASCII值加4。主程序实现字符输入,调用函数加密,显示加密后的字符。 def encrypt_char(char): """ 字符加密函数,将字符ASCII值加4 """ return chr(ord(char) + 4) def main(): char = input("请输入要加密的字符:") encrypted_char = encrypt_char(char) print("加密后的字符为:", encrypted_char) if __name__ == '__main__': main() 在程序中,定义了一个字符加密函数encrypt_char,用于将输入的字符进行加密。加密规则是将字符的ASCII值加4,使用chr函数将得到的新ASCII码转换为字符,即为加密后的字符。 在主程序中,调用input函数获取用户输入的字符,再将该字符作为参数调用字符加密函数encrypt_char,得到加密后的字符。最后,使用print函数输出加密后的字符。
时间: 2023-12-14 17:38:51 浏览: 74
好的,以下是完整的Python程序代码:
```
def encrypt_char(char):
"""
字符加密函数,将字符ASCII值加4
"""
return chr(ord(char) + 4)
def main():
char = input("请输入要加密的字符:")
encrypted_char = encrypt_char(char)
print("加密后的字符为:", encrypted_char)
if __name__ == '__main__':
main()
```
在程序中,我们首先定义了一个字符加密函数encrypt_char,该函数接受一个字符作为参数,使用ord函数获取该字符的ASCII码值,并将其加上4,最后使用chr函数将加密后的ASCII码转换为字符,并返回该字符。
在主程序中,我们调用input函数获取用户输入的字符,将其作为参数调用字符加密函数encrypt_char,得到加密后的字符,并使用print函数输出加密后的字符。
运行该程序,可以在命令行中输入要加密的字符,程序会将其加密后输出。例如,输入字符A,程序会输出字符E(A的ASCII码为65,加4后为69,对应的字符为E)。
相关问题
将恺撒加密和解密函数封装在一个类中。 主文件通过实例调用类中的加解密方法实现对字符串的加解密。
在Python中,我们可以将加密和解密的功能封装在一个名为`CaesarCipher`的类中,以便更好地管理和复用。以下是这样的设计:
```python
class CaesarCipher:
def __init__(self, shift=3):
self.shift = shift
def _get_alphabet(self):
return string.ascii_letters + string.digits + string.punctuation + '中文字符'
def encrypt(self, text):
alphabet = self._get_alphabet()
encrypted_text = ''.join(alphabet[(alphabet.index(char) + self.shift) % len(alphabet)] for char in text)
return encrypted_text
def decrypt(self, encrypted_text):
return self.encrypt(encrypted_text, -self.shift)
# 对于中文字符,同样可以添加相应的解密处理
def chinese_decrypt(self, encrypted_text):
if '中文字符' not in self._get_alphabet():
raise ValueError("当前实例未包含中文字符")
decrypted_pinyin = self.decrypt(encrypted_text)
return ''.join(''.join(chr(ord(pinyin) + ord(self.shift) % 256) for pinyin in phrase) for phrase in decrypted_pinyin)
# 主文件中使用示例
cipher = CaesarCipher(key=3)
input_string = "Hello, 世界!"
encrypted = cipher.encrypt(input_string)
print(f"加密后:{encrypted}")
decrypted = cipher.decrypt(encrypted)
print(f"解密后:{decrypted}")
try:
chinese_encrypted = cipher.chinese_encrypt(input_string)
except ValueError as e:
print(e)
# 如果需要,可以创建一个新的实例用于中文字符加密
chinese_cipher = CaesarCipher(key=3, include_chinese=True)
chinese_encrypted = chinese_cipher.chinese_encrypt(input_string)
print(f"中文加密后:{chinese_encrypted}")
chinese_decrypted = chinese_cipher.chinese_decrypt(chinese_encrypted)
print(f"中文解密后:{chinese_decrypted}")
```
在这个设计中,用户可以通过创建`CaesarCipher`类的实例,并通过该实例调用`encrypt`、`decrypt`或`chinese_decrypt`方法来进行加解密操作。这样使得代码更整洁,也方便了后续维护和扩展。
python编写加密函数,使用凯撒加密方法对字符串加密。
好的,我可以为您提供一个Python的凯撒加密函数实现,代码如下:
```python
def caesar_encrypt(plaintext, shift):
"""
凯撒加密函数
:param plaintext: 明文字符串
:param shift: 加密位移数
:return: 加密后的密文字符串
"""
ciphertext = ""
for char in plaintext:
if char.isalpha():
# 将字符转化为 ASCII 码
ascii_code = ord(char)
# 判断是大写字母还是小写字母
if char.isupper():
shift_offset = 65 # 大写字母 ASCII 码偏移量
else:
shift_offset = 97 # 小写字母 ASCII 码偏移量
# 进行加密操作,注意需要处理越界问题
shifted_ascii_code = (ascii_code - shift_offset + shift) % 26 + shift_offset
# 将密文字符添加到密文字符串中
ciphertext += chr(shifted_ascii_code)
else:
ciphertext += char
return ciphertext
```
您可以使用上述函数进行凯撒加密操作,调用时传入明文和加密位移数即可。
阅读全文