not convertir codificar codecs bytes b64encode arbitrary python python-3.x base64

convertir - ¿Deseas eliminar la nueva línea "/ n" de las cadenas codificadas en base64 en Python3?



python base64 encode file (4)

Coincido con la observación de Mandar de que base64.xxxx_encode() produciría una salida sin base64.xxxx_encode() línea.

Para aquellos que desean una comprensión más segura que una simple observación, estas son las promesas oficiales (más o menos) que puedo encontrar sobre este tema. La documentación de Python 3 menciona que base64.encode(...) agregaría nuevas líneas después de cada 76 bytes de salida. Comparado con eso, todas las otras *_encode(...) no mencionan en absoluto su comportamiento de alineación de línea, lo que puede considerarse como "sin comportamiento de ajuste de línea". Para lo que vale la pena, la documentación de Python 2 no menciona nada sobre el ajuste de línea en absoluto.

Estoy tratando de establecer una conexión HTTPS en Python3 y cuando intento codificar mi nombre de usuario y contraseña, el método de encodebytes base64 devuelve el valor codificado con un nuevo carácter de línea al final "/ n" y, debido a esto, obtengo un error cuando intento conectarme.

¿Hay una manera de decirle a la biblioteca base64 que no agregue un nuevo carácter de línea al codificar o cuál es la mejor manera de eliminar este nuevo carácter de línea? Intenté usar el método de replace pero obtengo el siguiente error:

Traceback (most recent call last): File "data_consumer.py", line 33, in <module> auth_base64 = auth_base64.replace(''/n'', '''') TypeError: expected bytes, bytearray or buffer compatible object

Mi código:

auth = b''[email protected]:passWORD'' auth_base64 = base64.encodebytes(auth) auth_base64 = auth_base64.replace(''/n'', '''')

¿Algunas ideas? Gracias


El siguiente código funcionaría

auth_base64 = auth_base64.decode(''utf-8'').replace(''/n'', '''')


En lugar de encodestring considere utilizar b64encode . Más tarde no agrega /n caracteres. p.ej

In [11]: auth = b''[email protected]:passWORD'' In [12]: base64.encodestring(auth) Out[12]: b''dXNlcm5hbWVAZG9tYWluLmNvbTpwYXNzV09SRA==/n'' In [13]: base64.b64encode(auth) Out[13]: b''dXNlcm5hbWVAZG9tYWluLmNvbTpwYXNzV09SRA==''

Produce una cadena codificada idéntica excepto la /n


para el uso de python3: -

binascii.b2a_base64 (cipher_text, newline = False )

para el uso de python2:

binascii.b2a_base64 (cipher_text) [: -1]