用python实现希尔密码加密,自行输入明文密钥
时间: 2024-02-22 12:55:56 浏览: 70
好的,下面是一个实现希尔密码加密的 Python 代码,可以让用户自行输入明文和密钥:
```python
def encrypt(message, key):
encrypted = ""
key_len = len(key)
msg_len = len(message)
for i in range(msg_len):
char = message[i]
key_char = key[i % key_len]
shift = ord(key_char) - 65
encrypted += chr((ord(char) + shift) % 26 + 65)
return encrypted
# 获取用户输入
message = input("请输入需要加密的明文:").upper()
key = input("请输入密钥:").upper()
# 加密并输出结果
encrypted = encrypt(message, key)
print("密文为:", encrypted)
```
在这个代码中,我们使用了 `input()` 函数来获取用户输入的明文和密钥,然后将它们传递给 `encrypt()` 函数进行加密。最后,我们将加密后的结果输出给用户。需要注意的是,为了方便起见,我们将用户输入的明文和密钥都转换为大写字母。
相关问题
用pyth实现希尔密码加密,用户自行输入明文密钥,
好的,这里是一个实现用户自行输入明文和密钥的希尔密码加密 Python 代码:
```python
def encrypt(message, key):
encrypted = ""
key_len = len(key)
msg_len = len(message)
for i in range(msg_len):
char = message[i]
key_char = key[i % key_len]
shift = ord(key_char) - 65
encrypted += chr((ord(char) + shift) % 26 + 65)
return encrypted
# 获取用户输入
message = input("请输入需要加密的明文:").upper()
key = input("请输入密钥:").upper()
# 加密并输出结果
encrypted = encrypt(message, key)
print("密文为:", encrypted)
```
这个代码与之前的代码非常相似,只是将获取用户输入的代码放入了函数之外,以便让用户自行输入明文和密钥。其他部分的代码与之前的代码一样。需要注意的是,在这个代码中,我们同样将用户输入的明文和密钥都转换为大写字母。
用python实现希尔密码加解密,用户自行选择加密还是解密,自行输入明文或者密文,密钥
好的,下面是一个实现希尔密码加解密的 Python 代码,可以让用户自行选择加密还是解密,自行输入明文或者密文以及密钥:
```python
def shift_by_key(char, key_char):
shift = ord(key_char) - 65
return chr((ord(char) + shift) % 26 + 65)
def encrypt(message, key):
encrypted = ""
key_len = len(key)
msg_len = len(message)
for i in range(msg_len):
char = message[i]
key_char = key[i % key_len]
encrypted += shift_by_key(char, key_char)
return encrypted
def decrypt(encrypted, key):
decrypted = ""
key_len = len(key)
msg_len = len(encrypted)
for i in range(msg_len):
char = encrypted[i]
key_char = key[i % key_len]
shift = ord(key_char) - 65
decrypted += chr((ord(char) - shift - 65) % 26 + 65)
return decrypted
# 获取用户输入
action = input("请输入操作(加密/解密):")
message = input("请输入明文或密文:").upper()
key = input("请输入密钥:").upper()
# 执行操作并输出结果
if action == "加密":
encrypted = encrypt(message, key)
print("加密结果为:", encrypted)
elif action == "解密":
decrypted = decrypt(message, key)
print("解密结果为:", decrypted)
else:
print("无效的操作!请重新运行程序。")
```
这个代码实现了用户可以自行选择加密还是解密的功能,同时让用户输入明文或者密文以及密钥。在加密过程中,我们使用 `shift_by_key()` 函数来计算每个字符的偏移量,然后将其加密。在解密过程中,我们使用类似的方法来计算每个字符的偏移量,然后将其解密。需要注意的是,在解密过程中,我们需要将偏移量从加密时的值转换为减去该值的值。
阅读全文