zoukankan      html  css  js  c++  java
  • base64

    一.什么是base64,解决什么问题

    Base64是一种用64个字符来表示任意二进制数据的方法。

    Base64编码可以成为密码学的基石。可以将任意的二进制数据进行Base64编码。所有的数据都能被编码为并只用65个字符就能表示的文本文件。( 65字符:A~Z a~z 0~9 + / = )编码后的数据~=编码前数据的4/3,会大1/3左右。

    二.Base64编码的流程

    1.将所有字符转化为ASCII码。

    2.ASCII码转化为8位二进制 。

    3.将二进制3个归成一组(不足3个在后边补0)24位,再拆分成4组,每组6位。

    统一在6位二进制前补两个0凑足8位。

    4.将补0后的二进制转为十进制。

    5.Base64编码表获取十进制对应的Base64编码。

    三.编码自己的学号姓名

    20191206chenfaqiang   ==    MjAxOTEyMDZjaGVuZmFxaWFuZw==

    20191206陈发强      ==    MjAxOTEyMDazwreix78=

    四.Python实现

    (一)名字使用拼音

    >>> import base64

    >>> a = '20191206chenfaqiang'

    >>> b = a.encode(encoding = 'utf-8')

    >>> base64.b64encode(b)

    b'MjAxOTEyMDZjaGVuZmFxaWFuZw=='

    >>> c = base64.b64encode(b)

    >>> base64.b64decode(c)

    b'20191206chenfaqiang'

    >>>

    (二)名字使用汉字

    >>> import base64

    >>> a = '20191206陈发强'

    >>> b = bytes (a,encoding = 'gkb')

    Traceback (most recent call last):

      File "<pyshell#2>", line 1, in <module>

        b = bytes (a,encoding = 'gkb')

    LookupError: unknown encoding: gkb

    >>> b = bytes(a,encoding = 'gbk')

    >>> c = base64.b64encode(b)

    >>> print(c)

    b'MjAxOTEyMDazwreix78='

    >>> d = base64.b64decode(c)

    >>> print(d)

    b'20191206xb3xc2xb7xa2xc7xbf'

    >>> f = str(d,decoding = 'gbk')

    Traceback (most recent call last):

      File "<pyshell#8>", line 1, in <module>

        f = str(d,decoding = 'gbk')

    TypeError: 'decoding' is an invalid keyword argument for str()

    >>> str(d,encoding = 'gbk')

    '20191206陈发强'

    >>>

  • 相关阅读:
    【组合数学】 03
    【组合数学】 02
    【微积分】 10
    马未都说收藏:陶瓷篇(18、19)五彩瓷、斗彩
    马未都说收藏:陶瓷篇(1)历史朝代、陶器
    maven pom.xml常用标签 Exclusions plugins是什么意思
    Java日志记录工具SLF4J介绍
    Spring Context及ApplicationContext
    RabbitMQ中Queue详细介绍
    收藏专家马未都简介
  • 原文地址:https://www.cnblogs.com/cfqlovem-521/p/11700429.html
Copyright © 2011-2022 走看看