zoukankan      html  css  js  c++  java
  • 写一下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'ixb7x1dxfbxefxff'))     
    print(base64.urlsafe_b64encode(b'ixb7x1dxfbxefxff'))   
    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

  • 相关阅读:
    JS焦点图手动切换
    Cookie
    javaScript字符串方法(常用的)
    javaScript函数
    JavaScript条件语句和循环语句
    JavaScript基本的数据类型
    数据库的四个基本语句
    CSS文本样式
    HTML图片
    C#集合
  • 原文地址:https://www.cnblogs.com/sidianok/p/11863818.html
Copyright © 2011-2022 走看看