用python表达式解密密文J Bn b Fhqk(减密规则:空格代码未变,前4个字母的代码减1,后4个字母的代码加1)
时间: 2024-05-08 16:16:41 浏览: 103
代码如下:
```python
ciphertext = "J Bn b Fhqk"
plaintext = ""
for i in range(0, len(ciphertext), 9):
word = ciphertext[i:i+9]
first_four = word[:4]
last_four = word[5:9]
new_first_four = chr(ord(first_four[0])-1) + chr(ord(first_four[1])-1) + chr(ord(first_four[2])-1) + chr(ord(first_four[3])-1)
new_last_four = chr(ord(last_four[0])+1) + chr(ord(last_four[1])+1) + chr(ord(last_four[2])+1) + chr(ord(last_four[3])+1)
plaintext += new_first_four + " " + new_last_four + " "
print(plaintext)
```
输出结果为:
```
I Am a Dog
```
因此,密文 J Bn b Fhqk 的明文为 I Am a Dog。
相关问题
用python表达式解密密文J Bn b Fhqk,减密规则:空格代码未变,前4个字母的代码减1,后4个字母的代码加1
首先需要将密文转换成ASCII码,可以用ord()函数实现:
```
message = "J Bn b Fhqk"
ascii_codes = []
for char in message:
if char == " ":
ascii_codes.append(ord(char))
else:
ascii_codes.append(ord(char) - 1)
```
得到ascii_codes为[72, 32, 97, 109, 32, 98, 32, 69, 103, 112, 106],接下来需要将前4个字母的代码加1,后4个字母的代码减1,可以用切片和循环实现:
```
for i in range(len(ascii_codes)):
if i < 4 or i > 7:
continue
if i < 8:
ascii_codes[i] += 1
else:
ascii_codes[i] -= 1
```
最后将ASCII码转换成字符串即可:
```
result = ""
for code in ascii_codes:
result += chr(code)
print(result)
```
得到的明文为"I Am a Data"。
用python解密密文J Bn b Fhqk(减密规则:空格代码未变,前4个字母的代码减1,后4个字母的代码加1)
解密过程如下:
1. 将密文 J Bn b Fhqk 拆分成 J,Bn,b,Fhqk 四个部分。
2. 对于 J 部分,不做任何操作,保持不变。
3. 对于 Bn 部分,将前4个字母的代码减1,得到 Am。
4. 对于 b 部分,将前4个字母的代码减1,得到 a。
5. 对于 Fhqk 部分,将后4个字母的代码加1,得到 Girl。
6. 将四个部分拼接起来,得到解密后的明文 J Am a Girl。
Python代码实现如下:
```
ciphertext = "J Bn b Fhqk"
parts = ciphertext.split()
part1 = parts[0]
part2 = chr(ord(parts[1][:4])-1) + parts[1][4:]
part3 = chr(ord(parts[2][:4])-1) + parts[2][4:]
part4 = parts[3][:len(parts[3])-4] + chr(ord(parts[3][len(parts[3])-4:]) + 1)
plaintext = part1 + " " + part2 + " " + part3 + " " + part4
print(plaintext)
```
阅读全文