首页 > 解决方案 > Base64 到 1 和 0 的字符串转换器

问题描述

我对这个问题进行了一些搜索,但找不到相关答案。我正在尝试将一些字符串形式的 input() 函数转换为 Base64,并从 Base64 转换为 1 和 0 的原始字符串。我的转换器正在工作,但它的输出不是原始位,而是这样的:b'YWhvag=='。不幸的是,我需要一串 1 和 0,因为我想通过 LED 的“闪烁”发送这些数据。

你能帮我弄清楚吗?感谢您提供任何帮助!

import base64

some_text = input()

base64_string = (base64.b64encode(some_text.encode("ascii")))

print(base64_string)

标签: pythonpython-3.xbase64converters

解决方案


如果我正确地理解了它,你想要类似于每个 for 的字符串的二进制'hello'等价['1101000', '1100101', '1101100', '1101100', '1101111']h e l l o

import base64

some_text = input('enter a string to be encoded(8 bit encoding): ')


def encode(text):
    base64_string = (base64.b64encode(text.encode("ascii")))
    return ''.join([bin(i)[2:].zfill(8) for i in base64_string])

def decode(binary_digit):
    b = str(binary_digit)
    c = ['0b'+b[i:i+8] for i in range(0,len(b), 8)]
    c = ''.join([chr(eval(i)) for i in c])
    return base64.b64decode(c).decode('ascii')

encoded_value = encode(some_text)
decoded_value = decode(encoded_value)

print(f'encoded value of {some_text} in 8 bit encoding is: {encoded_value}')
print(f'decoded value of {encoded_value} is: {decoded_value}')

推荐阅读