写一下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字符。
还可以用在:

  • 垃圾消息传播者用Base64来避过反垃圾邮件工具,因为那些工具通常都不会翻译Base64的消息。
  • LDIF文件,Base64用作编码字符串。

知道了,为什么要用,那下面我直接上代码,告诉如何用。

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

猜你喜欢

转载自www.cnblogs.com/sidianok/p/11863818.html
今日推荐