he extraído cadena de base 64 de los valores ForeColor, la textura y el mapa de bordes de imágenes, tengo una lista con estructura siguiente:Decode pitón base 64 Cadena
forecolor=AgCEAg4DUQQCBQQGARMBFQE1AmUB
edge=AfCAFg5iIATCPwTAEIiBFggBDw
forecolor=AgAsAQ0CJAMcDRgOGg8DHQYeBzYBPQ4-DU0ETgNtBm4CfQI
Estoy intentando decodificar estos valores, pero me estoy haciendo incorrecta error de relleno, aquí es el error exacto:
Traceback (most recent call last):
File "ImageVectorData.py", line 44, in <module>
print "Decoded String: " + decoded.decode('base64', 'strict')
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/base64_codec.py", line 42, in base64_decode
output = base64.decodestring(input)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/base64.py", line 321, in decodestring
return binascii.a2b_base64(s)
binascii.Error: Incorrect padding
aquí está mi código:
for item in value:
print "String before Split: " + item
if item.split("=")[0] == "forecolor":
decoded = (item.split("=")[1])
print "String to be decoded: " + decoded
print "Decoded String: " + decoded.decode('base64', 'strict')
también vi una interesante poner a cabo cuando consiguió decodifica la cadena base64 primer color de primer plano: Aquí está el cabo de ese puesto:
String before Split: forecolor=AgCEAg4DUQQCBQQGARMBFQE1AmUB
String to be decoded: AgCEAg4DUQQCBQQGARMBFQE1AmUB
Decoded String: ?Q5e
No estoy realmente seguro de lo que estoy haciendo mal aquí. Miré el siguiente documento de Python y lo intenté, pero eso tampoco funcionó: http://docs.python.org/library/base64.html
El valor de 'edge' no parece ser una cadena codificado en base 64 vlaid, lo que Python da un mensaje de error. Use entradas válidas, y las cosas deberían funcionar. –
Si miras el código, solo estoy intentando decodificar forecolor, así que no creo que edge entre en acción en este momento. –
@SvenMarnach, puede solucionar el problema de relleno agregando un par de '==' al final de la cadena. El problema más grande es que el resultado descifrado es totalmente indescifrable. –