Search code examples
pythonbase64

python base64 decode and encode back not working


This - cg4AAAAAAAB7ACIAbQBTAGgAYQBkAG8AdwBGAG8AbgB0AE0AYQBwAEgAYQBzAGgAIgA6ACIAOQBjADkAOQBkAGYAMwAwAC0AOAA3AGUAMgAtADIAYgA1ADMALQBkAGYAOQA1AC0AYgA3AGUAZgAwADAAMAAwADAAMgAyAGQAIgAsACIAbQBUAGUAeAB0AFAAYQByAGEAbQAiADoAewAiAG0AQQBsAGkAZwBuAG0AZQBuAHQAIgA6ADIALAAiAG0AQgBhAGMAawBGAGkAbABsAEMAbwBsAG8AcgAiADoANAAxADQANAA5ADUAOQAsACIAbQBCAGEAYwBrAEYAaQBsAGwATwBwAGEAYwBpAHQAeQAiADoANwA1ACwAIgBtAEIAYQBjAGsARgBpAGwAbABTAGkAegBlACIAOgAwACwAIgBtAEIAYQBjAGsARgBpAGwAbABWAGkAcwBpAGIAbABlACIAOgBmAGEAbABzAGUALAAiAG0ARABlAGYAYQB1AGwAdABSAHUAbgAiADoAWwBdACwAIgBtAEgAZQBpAGcAaAB0ACIAOgAwACwAIgBtAEgAaQBuAGQAaQBEAGkAZwBpAHQAcwAiADoAZgBhAGwAcwBlACwAIgBtAEkAbgBkAGkAYwAiADoAZgBhAGwAcwBlACwAIgBtAEkAcwBNAGEAcwBrACIAOgBmAGEAbABzAGUALAAiAG0ASQBzAE0AYQBzAGsASQBuAHYAZQByAHQAZQBkACIAOgBmAGEAbABzAGUALAAiAG0ASQBzAFYAZQByAHQAaQBjAGEAbABUAGUAeAB0ACIAOgBmAGEAbABzAGUALAAiAG0ATABlAGEAZABpAG4AZwAiADoAMAAsACIAbQBMAGkAZwBhAHQAdQByAGUAcwAiADoAZgBhAGwAcwBlACwAIgBtAEwAaQBuAGUAQwBhAHAAVAB5AHAAZQAiADoAMAAsACIAbQBMAGkAbgBlAEoAbwBpAG4AVAB5AHAAZQAiADoAMAAsACIAbQBNAGkAdABlAHIATABpAG0AaQB0ACIAOgAyAC4ANQAsACIAbQBOAHUAbQBTAHQAcgBvAGsAZQBzACIAOgAxACwAIgBtAFIAVABMACIAOgBmAGEAbABzAGUALAAiAG0AUwBoAGEAZABvAHcAQQBuAGcAbABlACIAOgAxADMANQAsACIAbQBTAGgAYQBkAG8AdwBCAGwAdQByACIAOgAwACwAIgBtAFMAaABhAGQAbwB3AEMAbwBsAG8AcgAiADoAMAAsACIAbQBTAGgAYQBkAG8AdwBPAGYAZgBzAGUAdAAiADoAMQAwACwAIgBtAFMAaABhAGQAbwB3AE8AcABhAGMAaQB0AHkAIgA6ADEAMAAwACwAIgBtAFMAaABhAGQAbwB3AFMAaQB6AGUAIgA6ADAALAAiAG0AUwBoAGEAZABvAHcAVgBpAHMAaQBiAGwAZQAiADoAZgBhAGwAcwBlACwAIgBtAFMAdAB5AGwAZQBTAGgAZQBlAHQAIgA6AHsAIgBtAEEAZABkAGkAdABpAG8AbgBhAGwAUwB0AHIAbwBrAGUAQwBvAGwAbwByACIAOgBbAF0ALAAiAG0AQQBkAGQAaQB0AGkAbwBuAGEAbABTAHQAcgBvAGsAZQBWAGkAcwBpAGIAbABlACIAOgBbAF0ALAAiAG0AQQBkAGQAaQB0AGkAbwBuAGEAbABTAHQAcgBvAGsAZQBXAGkAZAB0AGgAIgA6AFsAXQAsACIAbQBCAGEAcwBlAGwAaQBuAGUATwBwAHQAaQBvAG4AIgA6AHsAIgBtAFAAYQByAGEAbQBWAGEAbAB1AGUAcwAiADoAWwBbADAALAAwAF0AXQB9ACwAIgBtAEIAYQBzAGUAbABpAG4AZQBTAGgAaQBmAHQAIgA6AHsAIgBtAFAAYQByAGEAbQBWAGEAbAB1AGUAcwAiADoAWwBbADAALAAwAF0AXQB9ACwAIgBtAEMAYQBwAHMATwBwAHQAaQBvAG4AIgA6AHsAIgBtAFAAYQByAGEAbQBWAGEAbAB1AGUAcwAiADoAWwBbADAALAAwAF0AXQB9ACwAIgBtAEYAYQB1AHgAQgBvAGwAZAAiADoAewAiAG0AUABhAHIAYQBtAFYAYQBsAHUAZQBzACIAOgBbAFsAMAAsAGYAYQBsAHMAZQBdAF0AfQAsACIAbQBGAGEAdQB4AEkAdABhAGwAaQBjACIAOgB7ACIAbQBQAGEAcgBhAG0AVgBhAGwAdQBlAHMAIgA6AFsAWwAwACwAZgBhAGwAcwBlAF0AXQB9ACwAIgBtAEYAaQBsAGwAQwBvAGwAbwByACIAOgB7ACIAbQBQAGEAcgBhAG0AVgBhAGwAdQBlAHMAIgA6AFsAWwAwACwAMQA2ADcANwA3ADIAMQA1AF0AXQB9ACwAIgBtAEYAaQBsAGwATwB2AGUAcgBTAHQAcgBvAGsAZQAiADoAewAiAG0AUABhAHIAYQBtAFYAYQBsAHUAZQBzACIAOgBbAFsAMAAsAHQAcgB1AGUAXQBdAH0ALAAiAG0ARgBpAGwAbABWAGkAcwBpAGIAbABlACIAOgB7ACIAbQBQAGEAcgBhAG0AVgBhAGwAdQBlAHMAIgA6AFsAWwAwACwAdAByAHUAZQBdAF0AfQAsACIAbQBGAG8AbgB0AE4AYQBtAGUAIgA6AHsAIgBtAFAAYQByAGEAbQBWAGEAbAB1AGUAcwAiADoAWwBbADAALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADEALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADIALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADMALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADQALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADUALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADYALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADcALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADgALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADkALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADEAMAAsACIAQQBzAHMAaQBzAHQAYQBuAHQALQBSAGUAZwB1AGwAYQByACIAXQAsAFsAMQAxACwAIgBBAHMAcwBpAHMAdABhAG4AdAAtAFIAZQBnAHUAbABhAHIAIgBdACwAWwAxADIALAAiAEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgAiAF0ALABbADEAMwAsACIAQQBzAHMAaQBzAHQAYQBuAHQALQBSAGUAZwB1AGwAYQByACIAXQAsAFsAMQA0ACwAIgBBAHMAcwBpAHMAdABhAG4AdAAtAFIAZQBnAHUAbABhAHIAIgBdACwAWwAxADUALAAiADUAOAA3ADIANAAyADAAMgAtAEQARAA1ADgALQA0ADIAMABCAC0AQQA2AEYAMAAtADIARgBCAEIAQwA4ADEAMgBGADcAQgA1ACIAXQBdAH0ALAAiAG0ARgBvAG4AdABTAGkAegBlACIAOgB7ACIAbQBQAGEAcgBhAG0AVgBhAGwAdQBlAHMAIgA6AFsAWwAwACwAMQAwADAAXQBdAH0ALAAiAG0ASwBlAHIAbgBpAG4AZwAiADoAewAiAG0AUABhAHIAYQBtAFYAYQBsAHUAZQBzACIAOgBbAFsAMAAsADAAXQBdAH0ALAAiAG0AUwB0AHIAbwBrAGUAQwBvAGwAbwByACIAOgB7ACIAbQBQAGEAcgBhAG0AVgBhAGwAdQBlAHMAIgA6AFsAWwAwACwAMQA2ADcANwA3ADIAMQA1AF0AXQB9ACwAIgBtAFMAdAByAG8AawBlAFYAaQBzAGkAYgBsAGUAIgA6AHsAIgBtAFAAYQByAGEAbQBWAGEAbAB1AGUAcwAiADoAWwBbADAALABmAGEAbABzAGUAXQBdAH0ALAAiAG0AUwB0AHIAbwBrAGUAVwBpAGQAdABoACIAOgB7ACIAbQBQAGEAcgBhAG0AVgBhAGwAdQBlAHMAIgA6AFsAWwAwACwAMQBdAF0AfQAsACIAbQBUAGUAeAB0ACIAOgAiAFkAbwB1AHIAIABUAGkAdABsAGUAIABIAGUAcgBlACIALAAiAG0AVAByAGEAYwBrAGkAbgBnACIAOgB7ACIAbQBQAGEAcgBhAG0AVgBhAGwAdQBlAHMAIgA6AFsAWwAwACwAMABdAF0AfQAsACIAbQBUAHMAdQBtAGkAIgA6AHsAIgBtAFAAYQByAGEAbQBWAGEAbAB1AGUAcwAiADoAWwBbADAALAAwAF0AXQB9ACwAIgBtAFUAbgBkAGUAcgBsAGkAbgBlACIAOgB7ACIAbQBQAGEAcgBhAG0AVgBhAGwAdQBlAHMAIgA6AFsAWwAwACwAZgBhAGwAcwBlAF0AXQB9AH0ALAAiAG0AVABhAGIAVwBpAGQAdABoACIAOgA0ADAAMAAsACIAbQBWAGUAcgB0AGkAYwBhAGwAQQBsAGkAZwBuAG0AZQBuAHQAIgA6ADAALAAiAG0AVwBpAGQAdABoACIAOgAwAH0ALAAiAG0AVgBlAHIAcwBpAG8AbgAiADoAMQB9AA==

decoded in python - b = base64.b64decode(a).decode() and the result is - r{"mShadowFontMapHash":"9c99df30-87e2-2b53-df95-b7ef0000022d","mTextParam":{"mAlignment":2,"mBackFillColor":4144959,"mBackFillOpacity":75,"mBackFillSize":0,"mBackFillVisible":false,"mDefaultRun":[],"mHeight":0,"mHindiDigits":false,"mIndic":false,"mIsMask":false,"mIsMaskInverted":false,"mIsVerticalText":false,"mLeading":0,"mLigatures":false,"mLineCapType":0,"mLineJoinType":0,"mMiterLimit":2.5,"mNumStrokes":1,"mRTL":false,"mShadowAngle":135,"mShadowBlur":0,"mShadowColor":0,"mShadowOffset":10,"mShadowOpacity":100,"mShadowSize":0,"mShadowVisible":false,"mStyleSheet":{"mAdditionalStrokeColor":[],"mAdditionalStrokeVisible":[],"mAdditionalStrokeWidth":[],"mBaselineOption":{"mParamValues":[[0,0]]},"mBaselineShift":{"mParamValues":[[0,0]]},"mCapsOption":{"mParamValues":[[0,0]]},"mFauxBold":{"mParamValues":[[0,false]]},"mFauxItalic":{"mParamValues":[[0,false]]},"mFillColor":{"mParamValues":[[0,16777215]]},"mFillOverStroke":{"mParamValues":[[0,true]]},"mFillVisible":{"mParamValues":[[0,true]]},"mFontName":{"mParamValues":[[0,"Assistant-Regular"],[1,"Assistant-Regular"],[2,"Assistant-Regular"],[3,"Assistant-Regular"],[4,"Assistant-Regular"],[5,"Assistant-Regular"],[6,"Assistant-Regular"],[7,"Assistant-Regular"],[8,"Assistant-Regular"],[9,"Assistant-Regular"],[10,"Assistant-Regular"],[11,"Assistant-Regular"],[12,"Assistant-Regular"],[13,"Assistant-Regular"],[14,"Assistant-Regular"],[15,"58724202-DD58-420B-A6F0-2FBBC812F7B5"]]},"mFontSize":{"mParamValues":[[0,100]]},"mKerning":{"mParamValues":[[0,0]]},"mStrokeColor":{"mParamValues":[[0,16777215]]},"mStrokeVisible":{"mParamValues":[[0,false]]},"mStrokeWidth":{"mParamValues":[[0,1]]},"mText":"Your Title Here","mTracking":{"mParamValues":[[0,0]]},"mTsumi":{"mParamValues":[[0,0]]},"mUnderline":{"mParamValues":[[0,false]]}},"mTabWidth":400,"mVerticalAlignment":0,"mWidth":0},"mVersion":1}

I am not able to read this as json. there seems to be some hidden characters in this because when i slice it as string for first 10 characters - b[:10] result is just this r{. and if i just edit it as string and encode back, its not working.


Solution

  • That data is an absolute mess. The leading r must not be there and there are tons of 0-bytes in there which are all invalid in json. To solve this you can filter out those invalid bytes and remove the leading wrong ones:

    import json
    import base64
    
    inp = 'your data here'
    data = json.loads(bytes([b for b in list(base64.b64decode(inp)) if b != 0])[2:])