Python 中 base64 编码与解码

base64 是经常使用的一种加密方式,在 Python 中有专门的库支持。

本文主要介绍在 Python2 和 Python3 中的使用区别:

在 Python2 环境:

Python 2.7.16 (default, Mar 25 2021, 03:11:28)
[GCC 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.29.20) (-macos10.15-objc- on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>>
>>> import base64
>>> s = 'AlwaysBeta'
>>> a = base64.b64encode(s)
>>> print a
QWx3YXlzQmV0YQ==
>>>
>>> base64.b64decode(a)
'AlwaysBeta'

在 Python3 环境:

Python3 中有一些区别,因为 Python3 中字符都是 unicode 编码,而 b64encode 函数的参数为 byte 类型,所以必须先转码。

Python 3.8.5 (default, Jul 21 2020, 10:42:08)
[Clang 11.0.0 (clang-1100.0.33.17)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>>
>>> import base64
>>> a = base64.b64encode('AlwaysBeta'.encode('utf-8'))
>>> a
b'QWx3YXlzQmV0YQ=='
>>> str(a, 'utf-8')
'QWx3YXlzQmV0YQ=='
>>>
>>> base64.b64decode(a)
b'AlwaysBeta'
>>> str(base64.b64decode(a), 'utf-8')
'AlwaysBeta'

以上就是本文的全部内容,如果觉得有用的话欢迎 点赞转发,多谢。

推荐阅读:

  • 计算机经典书籍(含下载方式)
  • 技术博客 硬核后端开发技术干货,内容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。
  • Go 程序员 Go 学习路线图,包括基础专栏,进阶专栏,源码阅读,实战开发,面试刷题,必读书单等一系列资源。
  • 面试题汇总 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。

Original: https://www.cnblogs.com/alwaysbeta/p/15949683.html
Author: yongxinz
Title: Python 中 base64 编码与解码

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/643539/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • yuv rgb 互转 公式 及算法

    1 前言 自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用的过程,所以在不同的应用领…

    技术杂谈 2023年5月31日
    095
  • 容器不能使用 ps 等命令了 如何处理

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月31日
    0109
  • Git 分支管理策略汇总

    原文链接: Git 分支管理策略 最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码? 我大概说了一些规则,但仔细想来,好像也并没…

    技术杂谈 2023年6月21日
    092
  • 条件分支

    条件分支 if-else-fi [root@node1 test]# vim if.sh #!/bin/bash amswer=30 if [ $1 -gt $answer ];t…

    技术杂谈 2023年7月11日
    085
  • GPS北斗NTP授时服务器助力数字化校园网络建设

    GPS北斗NTP授时服务器助力数字化校园网络建设 GPS北斗NTP授时服务器助力数字化校园网络建设 京准电子科技官微——ahjzsz 随着网络的普及,许多单位都建了自己的园区网,使…

    技术杂谈 2023年6月21日
    085
  • 面试常考算法题之并查集问题

    朋友圈问题 现在有 105个用户,编号为 1- 105。已知有 m 对关系,每一对关系给你两个数 x 和 y ,代表编号为 x 的用户和编号为 y 的用户是在一个圈子中,例如: A…

    技术杂谈 2023年7月25日
    068
  • Deepin 15.4 安装 Double Commander

    参照官方教程,安装命令行如下: 对于 xUbuntu 16.04,请运行以下命令: cnblogs_Highlighterbash; sudo sh -c "echo &…

    技术杂谈 2023年5月30日
    0105
  • Windows安装配置OpenGrok

    Windows安装配置OpenGrok 安装opengrok过程中遇到的问题:1.下载安装Ctags下载地址:https://github.com/universal-ctags/…

    技术杂谈 2023年5月31日
    087
  • CSRF攻击:陌生链接不要随便点

    中我们讲到了 XSS 攻击,XSS 的攻击方式是黑客往用户的页面中注入恶意脚本,然后再通过恶意脚本将用户页面的数据上传到黑客的服务器上,最后黑客再利用这些数据进行一些恶意操作。XS…

    技术杂谈 2023年5月31日
    098
  • vi和vim文本编辑器

    vi和vim文本编辑器 vi和vim模式的相互切换 快捷键使用案例 拷贝当前行yy; 拷贝当前行向下的5行 5yy; 并粘贴(p) 删除当前行dd; 删除当前行向下的5行 5dd …

    技术杂谈 2023年7月11日
    075
  • [ML从入门到入门] 支持向量机:从SVM的推导过程到SMO的收敛性讨论

    引言 支持向量机(Support Vector Machine,SVM)在70年代由苏联人 Vladimir Vapnik 提出,主要用于处理二分类问题,也就是研究如何区分两类事物…

    技术杂谈 2023年7月24日
    088
  • c# 如何把json转化成dataset

    Newtonsoft.json.dll 添加到引用 实例 string jsondata1 = this.richTextBox1.Text.Trim();string jsonD…

    技术杂谈 2023年7月10日
    077
  • Windows 域控配置时间同步

    此功能是因内网时间与互联网时间不同步,需我们手动指定互联网NTP服务器来同步时间。一般默认情况下,加域客户端同步的是域主机的时间。如果域控的主机时间不准的话,那么域内的客户端也就随…

    技术杂谈 2023年6月21日
    0154
  • Windows版CheatSheet——一键显示当前程序快捷键列表

    Windows系统上的各种软件有太多的快捷键,想要记住是几乎不可能的,推荐一个一键显示当前软件快捷键的软件,在使用其他程序的时候,只要按下Ctrl+`就可以理解弹出该软件的所有快捷…

    技术杂谈 2023年7月24日
    074
  • 重学Java泛型

    系列文章目录和关于我 一丶从字节码层面看范型擦除 public class Type1 { private T t; } 使用jclasslib插件查看其字节码: 可以看到 t属性…

    技术杂谈 2023年7月25日
    0105
  • Python小游戏——猜数字

    1 print("————–我爱鱼———–") 2 temp = input("不妨猜一下甲鱼现在心里想的是哪个数字:…

    技术杂谈 2023年7月24日
    076
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球