pythonChallenge

本文介绍了一个基于Python的字符串加密与解密挑战,通过将字母表形成环状结构,实现对文本的加密,并提供了两种解密方法:手动替换和使用str.maketrans()函数。最终通过解密得到了下一关的网址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1关

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.题意说了,每个人在解决这个问题之前都三思而后行
2.由图可以看出,是将26个英文字母分别向后移动2位
3.但要注意,Z是换成了B,Y是换成了A,也就是形成了一个环状

== 如何将A-Z形成一个环状 ==

1.假设现在都已经是A-Z的ASCII码了。用括号表示为其ASCII码。

     则 ((X) + 2 - (A) )% 26 + (A)即为所求 

2.将A-Z变为ASCII码是用ord()函数

3.将 ASCII码变为字符用chr()函数

// Ada
text = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
result = ""
for c in text:
    if c < 'a' or c > 'z':
        result += c
    else:
        result += chr((ord(c) + 2 - ord('a')) % 26 + ord('a'))
print(result)

输出的结果:

i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that’s why this text is so long. using string.maketrans() is recommended. now apply on the url.
提示告知可以使用string.maketrans().

在这里插入图片描述
通过str.maketrans()创建一个映射表。然后使用str.maketrans()根据映射表将一个字符串转换成另一个字符串。

// Ada
	text = "g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."

table = str.maketrans("abcdefghijklmnopqrstuvwxyz", "cdefghijklmnopqrstuvwxyzab")
result = text.translate(table)

print(result)

now apply on the url.

当前url是 http://www.pythonchallenge.com/pc/def/map.html
联想到上一关是更改0,这一关应该是更改map.
用这一关的方法将map更改为 ocr
得到下一关的地址:
http://www.pythonchallenge.com/pc/def/ocr.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值