编程题2:数字加密 ·某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:【每个位置上的数字都加上5,然后再除以10的余数代替该数字】,再将第一位和第三位交换,第二位和第四位交换。 ·编程实现,输入一个四位数明文,输出密码.
时间: 2024-10-21 16:17:26 浏览: 32
python实现四位的整数,传递加密。
5星 · 资源好评率100%
为了实现这个数字加密算法,你可以编写如下的Python代码:
```python
def encrypt_number(input_number):
# 分离每一位数字
digits = [int(digit) for digit in str(input_number)]
# 按照加密规则操作每位数字
encrypted_digits = [(d + 5) % 10 for d in digits] # 加上5并取余数
# 交换位置
encrypted_digits[0], encrypted_digits[2] = encrypted_digits[2], encrypted_digits[0] # 第一位和第三位交换
encrypted_digits[1], encrypted_digits[3] = encrypted_digits[3], encrypted_digits[1] # 第二位和第四位交换
# 合并加密后的数字组成新字符串
encrypted_number = ''.join(map(str, encrypted_digits))
return encrypted_number
# 示例输入
plaintext = 1234
ciphertext = encrypt_number(plaintext)
print(f"明文 {plaintext} 加密后变为:{ciphertext}")
# 用户输入
user_input = int(input("请输入四位明文:"))
encrypted_user_input = encrypt_number(user_input)
print(f"用户输入的 {user_input} 加密后为:{encrypted_user_input}")
```
这段代码首先将输入的四位数分解为四个单独的数字,然后对每个数字应用加密规则,接着交换指定位置的数字,并最后组合成新的四位数。
阅读全文