Python 中如何将十六进制转换为 Base64
作者:迹忆客 发布时间:2022-09-07 01:20:14
本篇文章将介绍在 Python 中将 hex 转换为 base64 的方法。
使用 Python 中的 codecs 模块将 HEX 转换为 BASE64
Python 中的 codecs 模块提供了 encode()
和 decode()
方法来实现不同文本编码格式之间的转换。
encode()
函数有两个参数; 输入字符串和编码该字符串所需的格式。 此 encode()
函数的返回类型是以第二个参数中指定的格式编码的字符串。
decode()
函数也只有两个参数; 编码的输入字符串和输入字符串的编码格式。 decode()
函数根据第二个参数中指定的格式返回解码后的字符串。
要将十六进制字符串编码为 base64 字符串,我们首先通过将 hex 指定为第二个参数,使用 decode()
函数将该十六进制字符串解码为常规字符串。 然后,我们将通过将 base64 指定为第二个参数,使用 encode()
函数对先前操作的输出进行编码。
以下代码片段详细说明了使用 Python 中的编解码器模块将十六进制字符串编码为 base64 字符串所需的步骤。
import codecs
hex_string = "10000000000002ae"
b64_string = codecs.encode(codecs.decode(hex_string, 'hex'), 'base64').decode()
print(b64_string)
输出:
EAAAAAAAAq4=
在上面的代码中,我们使用编解码器模块将十六进制字符串 10000000000002ae 编码为 base64 字符串 EAAAAAAAAq4= 。
使用 Python 中的 base64 模块将 HEX 转换为 BASE64
Python 中另一个用于在不同文本编码格式之间进行转换的有用模块是 base64。 base64 模块为此任务提供了 b64encode()
和 b64decode()
函数。
b64encode()
函数将字节串作为输入参数,将其转换为base64格式,返回base64编码后的字符串。 同样,b64decode()
函数采用 base64 编码的字符串,将其转换为字节字符串,并返回解码后的字节字符串。
对于这个特殊问题,我们必须首先使用 bytes.fromhex()
函数将输入字符串转换为字节字符串。 然后,我们将使用 b64encode()
函数将该字节字符串编码为 base64 字符串。
以下代码片段演示了我们如何使用 Python 中的 base64 模块将十六进制字符串编码为 base64 字符串。
from base64 import b64encode, b64decode
hex_string = '10000000000002ae'
b64_string = b64encode(bytes.fromhex(hex_string)).decode()
print(b64_string)
输出:
EAAAAAAAAq4=
在上面的代码中,我们使用 base64 模块将十六进制字符串 10000000000002ae 编码为 base64 字符串 EAAAAAAAAq4=。
使用 Python 中的 binascii 模块将 HEX 转换为 BASE64
我们还可以使用 Python 的 binascii 模块在不同的文本编码格式之间进行转换。 binascii 模块提供了 unhexlify()
和 b2a_base64()
等函数,可以在这种情况下使用。
unhexlify()
函数将十六进制字符串作为输入参数,将其转换为字节字符串,并返回结果。 b2a_base64()
函数将一个字节字符串作为输入参数,将其转换为 base64 字符串,并返回结果。
在我们的特定问题中,我们需要首先使用 unhexlify()
函数将十六进制字符串转换为字节字符串,然后使用 b2a_base64()
函数将前面操作的结果转换为 base64 字符串。
以下代码示例演示了如何使用 binascii 模块在 Python 中将十六进制字符串转换为 base64。
from binascii import unhexlify, b2a_base64
hex_string = "10000000000002ae"
b64_string = b2a_base64(unhexlify(hex_string))
print(b64_string)
输出:
EAAAAAAAAq4=
在上面的代码中,我们使用 binascii 模块将十六进制字符串 10000000000002ae 编码为 base64 字符串 EAAAAAAAAq4=。 在上面讨论的所有方法中,binascii 方法是最直接的,我们需要编写最少的代码来实现它。
在 Python2 中将 HEX 转换为 BASE64
另一方面,如果我们使用原生支持十六进制和 base64 字符串的 Python2,我们可以大大减少所需的代码量。 下面的代码片段演示了我们如何在 Python2 中将十六进制字符串转换为 base64 字符串。
hex_string = "10000000000002ae"
b64_string = hex_string.decode("hex").encode("base64")
print(b64_string)
输出:
EAAAAAAAAq4=
我们不需要在上面的代码中导入任何模块,因为 Python2 本身就支持十六进制和 base64 字符串。 我们首先使用 decode("hex")
函数将十六进制字符串转换为字节字符串,然后使用 encode("base64")
函数将其输出编码为 base64。
来源:https://blog.csdn.net/fengqianlang/article/details/130986640


猜你喜欢
- 用Pdb调试有多种方式使用 Pdb调试 Python的程序的方式主要是下面的三种!下面逐一介绍命令行加-m参数命令行启动目标程序,加上-m参
- 文本文件具备初步存放、编辑各类数据的能力,并可以持久保留和数据共享。1. 建立文件 建立文本文件有两种途径:一是通过Windows的“记事
- 什么是闭包闭包(Closure)是一种函数,它被定义在另一个函数的内部,并且可以访问该函数作用域中的变量,即使该函数已经执行完毕并被销毁。换
- 在Python3.6提供f-Strings新的字符串格式化语法。不仅更加可读、简洁,相比其他方式也不易造成错误,而且还更快。看完本文你将学习
- 匿名函数lambda表达式 什么是匿名函数?匿名函数,顾名思义就是没有名字的函数,在程序中不用使用 def 进行定义,可以直接使用 lamb
- TensorFlow是Google公司2015年11月开源的第二代深度学习框架,是第一代框架DistBelief的改进版本. TensorF
- 本文实例讲述了Python基于PyGraphics包实现图片截取功能的方法。分享给大家供大家参考,具体如下:先安安装PyGraphics包
- 如下所示:#coding:utf-8import binasciia = 'worker'#先把worker转换成二进制数据
- python进行有理数运算时,希望用运算符(+ - * /)描述计算过程。只是用来写出更加自然的计算表达式。为此,python为所有算数运算
- 在日常生活中,随机数对于我们而言并不陌生,例如手机短信验证码就是一个随机的数字字符串;对于统计分析、机器学习等领域而言,通常也需要生成大量的
- 某日,一同学给小的发了 Github 源码,说是可以轻松查到删除自己的微信好友,于是就开始了作死之路。Github 源码请看:0x5e/we
- 1.基数排序基数排序的基本思想是先将数字按照个位数上数字的大小进行排序,排序之后再将已经排过序的数字再按照十位数上数字的大小进行排序,依次推
- 什么是deferdefer用来声明一个延迟函数,把这个函数放入到一个栈上, 当外部的包含方法return之前,返回参数到调用方法之前调用,也
- 介绍OptionParser是一个更方便、更灵活、更强大的用于解析命令行选项的库,使用更具声明性的命令行分析样式:创建 OptionPars
- 译者按:原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员
- 数据库分类早期数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。而在当今的互联网中,通常把数据库分为两类,即关系型数据库和非
- 由于我在从源码看vue(v2.7.10)的computed的实现原理中详细的讲解过computed的实现,本篇跟computed的原理类似。
- <div id="msg"></div> <input type="text&q
- 下面的request.servervariables例子都是服务器探针采用的asp代码本机ip:<%=request.serverva
- Go-ethereum 解析ethersjs中产生的签名信息在签名验证的过程中,我们判断签名正确的前提是,签名解析后的公钥,和发起这次动作的