4.使用python编写程序 请按照加密规则实现加密算法,加密规则如下:每位数字都加上7,然后用它除以10的余数代替该数字,再将第一位和第三位交换,第二位和第四位交换。(密码为四位数)(20分)
时间: 2024-10-24 13:10:55 浏览: 20
在Python中编写这样的加密算法,我们可以创建一个函数,接收一个四位数作为输入,然后按照指定的规则进行处理。以下是具体的步骤:
```python
def encrypt_number(number):
# 将数字转换成字符串,以便操作每一位
str_num = str(number)
# 对每一位数字加上7并取余10
encrypted_chars = [str((int(char) + 7) % 10) for char in str_num]
# 交换第一位和第三位,以及第二位和第四位
encrypted_chars[0], encrypted_chars[2] = encrypted_chars[2], encrypted_chars[0]
encrypted_chars[1], encrypted_chars[3] = encrypted_chars[3], encrypted_chars[1]
# 把加密后的字符列表组合回四位数
encrypted_number = int(''.join(encrypted_chars))
return encrypted_number
# 示例
original_number = 1234
encrypted_number = encrypt_number(original_number)
print(f"原始号码:{original_number}")
print(f"加密号码:{encrypted_number}")
相关问题
使用Python完成:某情报机构采用公用电话传递数据,数据是5位的整数,在传递过程中是加密的。 加密规则如下:每位数字都加上8,然后用和除以7的余数代替该数字,再将第1位和第5位交换,第2位和第3位交换。 请编写程序,完成明文至密文的加密过程,并将加密后的数字写入自命名文件中。 输入样例: 请输入你想要传递的5位数:12345 输出样例: 加密后的信息为:64352
可以使用以下代码实现:
```python
num = input("请输入你想要传递的5位数:")
# 将每位数字加上8,然后用和除以7的余数代替该数字
encrypted_num = ""
for digit in num:
encrypted_num += str((int(digit) + 8) % 7)
# 将第1位和第5位交换,第2位和第3位交换
encrypted_num = encrypted_num[4] + encrypted_num[1:3] + encrypted_num[0] + encrypted_num[3]
# 将加密后的数字写入文件中
with open("encrypted.txt", "w") as f:
f.write(encrypted_num)
print("加密后的信息为:" + encrypted_num)
```
注意,上述代码中的加密规则中,每位数字加上8再除以7的余数代替该数字,是一种简单的加密算法,不够安全。在实际的情报工作中,需要使用更加安全的加密算法。
2.某情报机构采用公用电话传递数据,数据是5位的整数,在传递过程中是加密的。加密规则如下:每位数字都加上8,然后用和除以7的余数代替该数字,再将第1位和第5位交换,第2位和第3位交换。请编写程序,完成明文至密文的加密过程,并将加密后的数字写入自命名文件中。 输入样例: 请输入你想要传递的5位整数: 12345 输出样例: 加密后的信息为: 64352
好的,我知道了。这是一道加密算法的题目。我来帮你解决这个问题。以下是Python代码实现,供你参考:
```python
num = input("请输入你想要传递的5位整数:")
# 将字符串转换成整数列表
num_list = [int(i) for i in num]
# 加密规则
for i in range(5):
num_list[i] = (num_list[i] + 8) % 7
# 交换数字
num_list[0], num_list[4] = num_list[4], num_list[0]
num_list[1], num_list[2] = num_list[2], num_list[1]
# 将数字列表转换成字符串
result = ''.join([str(i) for i in num_list])
# 将结果写入文件
with open('encrypted.txt', 'w') as f:
f.write(result)
print("加密后的信息为:", result)
```
你可以直接运行这段代码。它会要求你输入一个5位整数,然后将其加密,并将加密后的结果写入一个名为`encrypted.txt`的文件中。最后,程序会输出加密后的结果。
阅读全文