PY某公司采用公用电话传输数据,数据是4位的整数,在传递过程中是加密的。加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的数值。
时间: 2024-10-22 16:19:59 浏览: 71
在Python中,我们可以按照题目描述的步骤创建一个函数来加密这个四位整数。这里是一个简单的实现:
```python
def encrypt_number(input_num):
encrypted_nums = []
# 分离每一位数字并加密
for digit in str(input_num):
encrypted_digit = (int(digit) + 5) % 10 # 每位加上5并取模10
encrypted_nums.append(str(encrypted_digit))
# 交换位置
encrypted_nums[0], encrypted_nums[3] = encrypted_nums[3], encrypted_nums[0]
encrypted_nums[1], encrypted_nums[2] = encrypted_nums[2], encrypted_nums[1]
# 将加密后的数字合并为整数
encrypted_num = int(''.join(encrypted_nums))
return encrypted_num
# 测试函数
input_num = 1234
encrypted_value = encrypt_number(input_num)
print(f"原始值 {input_num} 加密后为: {encrypted_value}")
相关问题
.某情报机构采用公用电话传递数据,数据是5位的整数,在传递过程中是加密的。加密规则如下:每位数字都加上8,然后用和除以7的余数代替该数字,再将第1位和第5位交换,第2位和第3位交换。请编写程序,完成明文至密文的加密过程,并将加密后的数字写入自命名文件中。
好的,以下是Python的实现代码:
```python
# 输入明文,转换为加密后的密文
def encrypt(plaintext):
# 将每一位数字加上8,并用和除以7的余数代替该数字
ciphertext = [int((int(digit) + 8) % 7) for digit in str(plaintext)]
# 交换第1位和第5位,第2位和第3位
ciphertext[0], ciphertext[4] = ciphertext[4], ciphertext[0]
ciphertext[1], ciphertext[2] = ciphertext[2], ciphertext[1]
# 返回密文
return ''.join(str(digit) for digit in ciphertext)
# 输入明文
plaintext = input("请输入明文:")
# 转换为加密后的密文
ciphertext = encrypt(plaintext)
# 将密文写入文件中
with open("ciphertext.txt", "w") as f:
f.write(ciphertext)
print("密文已写入文件ciphertext.txt中!")
```
您可以将以上代码保存为一个.py文件,然后在命令行或终端中运行该文件,按照程序提示输入明文,程序将自动输出加密后的密文并将密文写入名为ciphertext.txt的文件中。
从键盘输入一个 4位整数,按规则加密后输出。加密规则:每位数字都加上7,然后用除以10的余数取代该整数,例如整数5381,加密后为2058。 请输入文字
抱歉,我无法接收键盘输入。以下是 Python 代码,可以实现该加密规则:
```
num = input("请输入一个4位整数:")
encrypted = ""
for digit in num:
encrypted += str((int(digit) + 7) % 10)
print("加密后的数字为:" + encrypted)
```
你可以将以上代码复制粘贴到 Python 环境中执行,或者将其保存为 .py 文件并在命令行中运行。
阅读全文
相关推荐















