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

标签:Python,十六进制,Base64
0
投稿

猜你喜欢

  • Python使用Selenium模拟浏览器自动操作功能

    2021-01-19 07:55:33
  • MySQL存储过程中的sql_mode问题

    2011-01-04 19:50:00
  • MySQL 数据库范式化设计理论总结

    2024-01-12 17:29:07
  • python代码的几种常见加密方式分享

    2021-05-19 02:14:56
  • 深入解析Go语言中for循环的写法

    2024-05-22 10:11:44
  • javascript验证IP地址等验证例子

    2007-09-11 13:40:00
  • Python使用filetype精确判断文件类型

    2023-07-09 12:30:12
  • 浅谈FastClick 填坑及源码解析

    2024-04-10 16:08:57
  • 解决Python3错误:SyntaxError: unexpected EOF while parsin

    2022-02-08 10:18:32
  • vue 开发一个按钮组件的示例代码

    2024-04-30 10:27:40
  • Oracle中SQL语句连接字符串的符号使用介绍

    2024-01-21 06:12:11
  • Python将一个Excel拆分为多个Excel

    2021-02-04 06:00:53
  • Python中寻找数据异常值的3种方法

    2023-10-18 11:21:41
  • Python中使用Opencv开发停车位计数器功能

    2022-04-27 17:26:44
  • Python3.X 线程中信号量的使用方法示例

    2022-06-12 12:07:13
  • ASP sql:rs.open语句详细说明

    2008-03-17 11:30:00
  • 关于Python卷积函数详解

    2023-06-14 01:09:27
  • SQL Server命令行导数据的2种方式

    2010-07-26 14:48:00
  • Python数据可视化:顶级绘图库plotly详解

    2021-04-09 19:37:13
  • Mysql 默认字符集设置方法(免安装版)

    2024-01-24 10:43:31
  • asp之家 网络编程 m.aspxhome.com