初学python3,一直在看廖学峰的教程。
一直看到base64的时候,我就有点hold不住了,是不是要找个小项目练练手?一直这样的学,学着忘着也不是个事呀。。。最好还是能用起来!
在网上查阅相关base64的知识的时候,意外的看到了迅雷链接的转码方式,很多人都知道,特别是使用IDM(Internet Download Manager)的人应该都知道,迅雷的专用链接是无法使用IDM下载的。但是互联网上资源的储存,大多时候也无外乎ftp,http,https,其他的一些,一般也是根据这些协议衍生出来的。那么只要知道资源的原始链接,不就可以使用IDM下载了么?
同样的还有快车下载等等。。(不过,现在很少用了吧。。)
好了,不废话了,其实迅雷专用下载链接的加密方法的逻辑就是:
在原始网址的开头和结尾分别添加字符串‘AA’,和‘ZZ’,然后,通过base64,使用字符集‘gbk’编码后,在base64字符串前加上‘thunder://’。
知道了具体的加密规则,反推就可以了。
import base64, re
def url_decode(url_user):
url_encode = url_user.lstrip('thunder://').encode()
link = base64.b64decode(url_encode).decode('gbk')
link = link.strip('AZ')
return link
def url_chenk(url_user):
while True:
if re.match('thunder://',url_user):
break
else:
print('你输入的不是需要破解的迅雷链接。\n')
url_user = input('请重新输入迅雷下载地址:\n')
return url_user
url_user = url_chenk(input('请输入需要破解的迅雷下载地址:\n'))
input('复制原始链接:\n%s'%url_decode(url_user))
好吧,其实这并不是一种加密方式,只是base64 编码。
后期,还会继续改进的。我总觉的代码不够简洁,用起来也不是特别的顺当,其次,还不能够批量处理。。不过,我想这个也不难,最简单的思路就是,用户一次性输入大量的链接,每行一个,然后把输入的内容存入一个list中,再使用for循环,转换链接即可,然后,可以把转换后的链接存储到一个txt文件中。
高手勿笑,还望指点。
网友评论