pythonurl加密解密_⼩叮当Python进阶(⼆):爬⾍与加密算
法Part2之URL。。。
想⼀次给⼤家详尽介绍完Python中常见的加密算法,⽆奈篇幅有限,只能分篇为⼤家分享。
URL编码
正常的URL中是只能包含ASCII字符的,也就是字符、数字和⼀些符号。
URL编码简单来说,就是⼀种浏览器⽤来避免解析URL时出现特殊字符(⾮ASCII字符,例如汉字等)的编码⽅式。
可以说URL编码的实质就是将超出ASCII范围的字符转换成带%的⼗六进制格式。
在Python中利⽤binascii模块,我们可以将⼗六进制形式的有含义的字节转换成我们在加解密中更常⽤的⽅式,例如ASCII码的形式。
其中binascii.b2a_hex()表⽰将⼆进制(binary)转化成ascii码,b2a即是“binary to ascii”的简写。
下⾯我们⽤Python来实现URL编码。
Base64编码
Base64是⼀种⽤64个字符来表⽰任意⼆进制数据的加密⽅法。64个字符指:“A~Z a~z 0~9 + / =”
某种意义上来讲,Base64编码是密码学的基⽯。因为我们可以将任意的⼆进制数据进⾏Base64编码。并且可以⽣成只⽤64个字符就能表⽰其含义的⽂本⽂件。
值得注意的是:Base64编码后的数据约等于编码前数据的4/3。相⽐较于编码前的数据,编码后的数据⼤⼩增加了1/3左右。
1.Base64编码步骤
Step1.将所有字符转化为ASCII码。Step2.将ASCII码转化为8位⼆进制 。
Step3.将⼆进制3个归成⼀组(不⾜3个在后边补0)共24位,再拆分成4组,每组6位。
Step4.统⼀在6位⼆进制前补两个0凑⾜8位。Step5.将补0后的⼆进制转为⼗进制。
Step6.从Base64编码表获取⼗进制对应的Base64编码。
2.Base64编码转换规则:
url编码处理
①转换的时候,将三个byte的数据,先后放⼊⼀个24bit的缓冲区中,先来的byte占⾼位。
②数据不⾜3byte的话,于缓冲区中剩下的bit⽤0补⾜。然后,每次取出6个bit,按照其值选择查表选择对应的字符作为编码后的输出。
③如此不断地进⾏,直到全部输⼊数据转换完成。
④如果最后剩下两个输⼊数据,在编码结果后加1个“=”。
⑤如果最后剩下⼀个输⼊数据,编码结果后加2个“=”。
⑥如果没有剩下任何数据,就什么都不要加,以此来保证资料还原的正确性。
3.Python实现Base64
幸运的是,Python内置的base64模块可以直接进⾏base64的编解码。我们不必再依据算法编写。
⼩贴⼠:⽤于base64编码的,要么是ASCII包含的字符,要么是⼆进制数据。
由于篇幅有限,其它常见的加密算法例如MD5、DES等将在之后的篇幅中继续为⼤家分享。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。