Base64 en python3 frente a python2

Base64 en python3 frente a python2

esta es mi cadena base64 "lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8=".

En python2 el siguiente código funciona

print("lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8=".decode('base64', 'strict'))

mientras que en python3 donde no hay str.decode('base64', 'strict') no está disponible. Intenté hacer lo mismo en python3 como se muestra a continuación

b64EncodeStr4 = "lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8="
print(len(b64EncodeStr4))
decodedByte = base64.b64decode(bytes(b64EncodeStr4, 'ascii'))
print(decodedByte)
decodeStr = decodedByte.decode('ascii', 'strict')
print(decodeStr)

También probé otras codificaciones como utf-8, utf-16, utf-32. Pero nada funciona. ¿Cuál es el mejor enfoque aquí para convertir base64 a una cadena normal en python3?

Respuesta1

decodeStr = decodedByte.decode('ascii', 'ignore')

https://docs.python.org/3/library/stdtypes.html#textseq

Respuesta2

En Python3, simplemente use base64.b64decode. (No olvide importar el módulo base64).

Paraejemplo:

import base64

b64_string = "lFKiKF2o+W/vvLqddOdv2ttxWSUX/SSZEyqcdyDDb+8="
decoded_bytes = base64.b64decode(b64_string)
decoded_string = decoded_bytes.decode('latin1')

print(decoded_string)

información relacionada