gpt4 book ai didi

python - 如何在Python中将十六进制编码为base64?

转载 作者:行者123 更新时间:2023-12-01 08:18:16 24 4
gpt4 key购买 nike

如果我尝试这样做:

from base64 import b64encode
b64encode('ffffff')

我收到此错误:

Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
base64.b64encode('ffffff')
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/base64.py", line 58, in b64encode
encoded = binascii.b2a_base64(s, newline=False)
TypeError: a bytes-like object is required, not 'str'

因为它说的是类似字节的对象,所以我尝试了这个:

b64encode(bytes('ffffff'))

失败了。

Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
b64encode(bytes('ffffff'))
TypeError: string argument without an encoding

最后,使用.encode('utf-8')函数:

b64encode('ffffff'.encode('utf-8'))

如果输出 b'ZmZmZmZm' 不正确,则正确的 Base64 编码为 ////

我已经知道如何将 b64 解码为十六进制,所以不要说如何做到这一点。

编辑:这个问题被标记为与将十六进制字符串转换为十六进制字节相同。这就涉及到base64了。

最佳答案

要完全从字符串 ffffff 转换为十六进制值的 base64,您需要使用 codecs 模块对其进行一些编码和解码:

import codecs
# Convert string to hex
hex = codecs.decode('ffffff', 'hex')
# Encode as base64 (bytes)
codecs.encode(hex, 'base64')

对于像 0xfffff 这样的奇数长度字符串,您需要在十六进制字符串的开头放置一个零(0x0fffff),否则 python 会给您一个错误。

关于python - 如何在Python中将十六进制编码为base64?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54855296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com