爬虫-逆向加密算法使用手册

url编码

import urllib.parse

# URL编码
urllib.parse.quote(str)

# URL解码
urllib.parse.unquote(str)

# 将字典或元组序列转换为URL查询字符串
urllib.parse.urlencode(字典/元组)

# 将URL查询字符串解析为字典
urllib.parse.parse_qs(str)

base64编码

base64是什么

Base64编码,是由64个字符组成编码集:26个大写字母A-Z,26个小写字母a-z,10个数字0-9,符号“+”与符号“/”。Base64编码的基本思路是将原始数据的三个字节拆分转化为四个字节,然后根据Base64的对应表,得到对应的编码数据。

当原始数据凑不够三个字节时,编码结果中会使用额外的 符号= 来表示这种情况。

base64原理

3个字符为一组的的base64编码方式
在这里插入图片描述
在这里插入图片描述

import base64
# 将字符串you转换成utf-8字节
bs = "you".encode("utf-8")

# 把字节转化成b64
base64.b64encode(bs).decode()

注意:b64处理后的字符串长度. 一定是4的倍数. 如果在网页上看到有些密文的b64长度不是4的倍数. 会报错

import base64
s = "eW91eQ"

s += ("=" * (4 - len(s) % 4))
print("填充后", s)
ret = base64.b64decode(s).decode()
print(ret)

base64变种

# 方式1
data = res.text.replace("-", "+").replace("_", "/")
base64.b64decode(data)
# 方式2
data = base64.b64decode(res.text, altchars=b"-_")  # base64解码成字节流

base64优点

  • 算法是编码,不是压缩,编码后只会增加字节数(一般是比之前的多1/3,比如之前是3, 编码后是4)
  • 算法简单,基本不影响效率
  • 算法可逆,解码很方便,不用于私密传输。
  • 加密后的字符串只有【0-9a-zA-Z+/=】 ,不可打印字符(转译字符)也可以传输

用Base64编码因为限定了用于编码的字符集,确保编码的结果可打印且无歧义

JS的base64编码与解码

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值