写一下base64字节码转换工具。
晚上总算把前面哪个平台的加密算法搞定了,他的解释文档写的太精简了,而且他的加密代码肯定是错的。
好在多次尝试总算试成功了,写了5个相对最麻烦的接口,取消订单,提交订单什么的,功能都实现了,发现调试自己写接口还挺麻烦的,那种写好的接口平台就方便了,复制粘贴就可以了。
这个base64还是较好理解的,一个普通的英文字母一般试1个字节8个bit,三个字节24个bit,base64就是把三个字节转换成4个6比特位的字节。它有一张自己的字符对照表,不同的数字代表不同的字符。
这个对照图网上有很多。
都是字节码,为什么要使用base64传输:
因为早起的一些传输协议,例如传输邮件的SMTP协议,只能传输可打印的ASCII字符。导致原本8Bit的字节码(范围0-255)超过了可用的范围。比如当邮件传输图片资源的时候,某一个Byte值是10111011B,对应十进制187不属于ASCII码范围,因此无法被传输。这个时候,Base64编码应用而生了,它利用6bit字符表达了原本的8bit字符。Base64可以把原本ASCII码的控制字符甚至ASCII码之外的字符都转换成可打印的6big字符。
还可以用在:
知道了,为什么要用,那下面我直接上代码,告诉如何用。
import base64 s_b = '1234'.encode() b1 = base64.b64encode(s_b) # 直接上字节码转换 print(b1) print(base64.b64decode(b1).decode()) # 再通过解码转换回来,然后需要的化,可以继续解码出字符串。 sb1 = '123456'.encode() b2 = base64.b64encode(sb1) # 因为b64编码转换时,需要原来的是三个字符拆成4个,如过是原来的字符是 print(b2) #3的倍数显示都是对应他自己的字母,如果不是缺几个补几个=号,最多补两个。 '''由于标准的Base64编码后可能出现字符+和/,在URL中就不能直接作为参数, 所以又有一种"url safe"的base64编码,其实就是把字符+和/分别变成-和_:''' print('~' *100) print(base64.b64encode(b'i\xb7\x1d\xfb\xef\xff')) print(base64.urlsafe_b64encode(b'i\xb7\x1d\xfb\xef\xff')) print(base64.b64decode(b'abcd++//')) print(base64.urlsafe_b64decode(b'abcd--__')) '''这个很简单,参考资料的链接里面讲的更加仔细'''
昨天凌晨看了namedtuple一个很有意思的模块,明天看能不能记录写一下,随便把io模块一起记录下,前面的re还欠着,其实写博客我觉的对我老年人的学习记忆加深真的蛮好的
base64我个人认为只能说是一种公开的转换方式,但绝对补属于加密方法,还有就是当你发现有字节码最后跟着==的时候,可以想尝试用base64解码后,再通过utf8或者gbk解码。
参考链接:
https://blog.csdn.net/wufaliang003/article/details/79573512
https://blog.csdn.net/wo541075754/article/details/81734770
https://www.liaoxuefeng.com/wiki/1016959663602400/1017684507717184