How can i check a base64 string is a file(what type?) or not? - base64

I took the Spentalkux challenge on https://2020.ractf.co.uk/.
This is the first time I do a CTF challenge so I went through a solution on https://github.com/W3rni0/RACTF_2020/blob/master/readme.md#spentalkux
When I receive this base64 string :
JA2HGSKBJI4DSZ2WGRAS6KZRLJKVEYKFJFAWSOCTNNTFCKZRF5HTGZRXJV2EKQTGJVTXUOLSIMXWI2KYNVEUCNLIKN5HK3RTJBHGIQTCM5RHIVSQGJ3C6MRLJRXXOTJYGM3XORSIJN4FUYTNIU4XAULGONGE6YLJJRAUYODLOZEWWNCNIJWWCMJXOVTEQULCJFFEGWDPK5HFUWSLI5IFOQRVKFWGU5SYJF2VQT3NNUYFGZ2MNF4EU5ZYJBJEGOCUMJWXUN3YGVSUS43QPFYGCWSIKNLWE2RYMNAWQZDKNRUTEV2VNNJDC43WGJSFU3LXLBUFU3CENZEWGQ3MGBDXS4SGLA3GMS3LIJCUEVCCONYSWOLVLEZEKY3VM4ZFEZRQPB2GCSTMJZSFSSTVPBVFAOLLMNSDCTCPK4XWMUKYORRDC43EGNTFGVCHLBDFI6BTKVVGMR2GPA3HKSSHNJSUSQKBIE
I don't know how to check if it is a file, but the solver said that it is a gz compressed data file.
Can you help me, please?
detail here
Link to file: https://github.com/W3rni0/RACTF_2020/blob/master/assets/files/Spentalkux.gz

Many filetypes have a header (the first few bytes of the file) with some fixed information by which a file can be identified as a gz, png, pdf, etc.
So every base64 encoded gz file would also start with a certain sequence of base64 characters, by which it can be recognized.
A gzip-file always starts with the two byte sequence 0x1f 0x1b, which in base64 encoding is H4 plus a third character in the range of s to v.
The reason is, that every base64 character represents 6 bits of the original bytes, so the two bytes 0x1f 0x1b are encoded with two base64 characters (12 bits) plus the first 4 bits of the third character.
Based on that, I would say that's no base64 encoded gzip that you show there.
other examples are:
png
starts with: 0x89 0x50 0x4e 0x47 0x0d 0x0a 0x1a 0x0a
base64 encoded: iVBORw0KGg...
jpg
starts with: 0xFF 0xD8 0xFF 0xD0
base64 encoded: /9j/4...
gif
starts with: GIF
base64 encoded: R0lG
tif
a) little endian:
starts with: 0x49 0x49 0x2A 0x00
base64 encoded: SUkqA
b) big endian:
starts with: 0x4D 0x4D 0x00 0x2A
base64 encoded: TU0AK
flv
starts with FLV
base64 encoded: RkxW
wav/avi/webp and others
several audio/video/image/graphic -formats are base on RIFF(Resource Interchange Format)
The common part is that all files start with RIFF
base64 encoded: UklGR
After the RIFFheader, you'll find the specific format starting in the 4 bytes starting at the 9th byte.
In the following _ is used as a placeholder for any character.
wav
starts with: RIFF____WAVE
base64 encoded: UklGR______XQVZF
webp
starts with: RIFF____WEBP
base64 encoded: UklGR______XRUJQ
avi
starts with: RIFF____AVI
base64 encoded: UklGR______BVkkg
Regarding the specific example in the question:
in the updated question there's a hint in the attached picture that
the data is first base32 encoded and then base64 encoded.
When we feed an online base32 decoder with the string given in the question (JA2HGSKBJI4DSZ2WGRAS...), we get:
H4sIAJ89gV4A/+1ZURaEIAi8SkfQ+1/O3f7MtEBfMgz9rC/diXmIA5hSzun3HNdBbgbtVP2v/2+LowM837wFHKxZbmE9pQfsLOaiLAL8kvIk4MBma17ufHQbIJCXoWNZZKGPWB5QljvXIuXOmm0SgLixJw8HRC8Tbmz7x5eIspypaZHSWbj8cAhdjli2WUkR1sv2dZmwXhZlDnIcCl0GyrFX6fKkBEBTBsq+9uY2Ecug2Rf0xtaJlNdYJuxjP9kcd1LOW/fQXtb1sd3fSTGXFTx3UjfGFx6uJGjeIAAA
It starts with H4s, so according to what I wrote about how to recognize file types in base64 encoding, it's a base64 encoded gzip file.
This can be saved in a text file and then uploaded on base64decode.org where it will be converted into a gzip file. When you download and open that gzip file it contains a file with text like this:
00110000 00110000 00110001 00110001 00110000 00110001 00110000 00110000 00100000 00110000 00110000 00110001 00110001 00110000 00110001 00110000 00110001 00100000 ...
Conclusion for this case: The original string/file is a gzip file that was first base64 encoded and the base64 encoded part was again encoded with base32.

Related

Base64 Decoding results contain unknown characters

I have base64 encoded text and I try to decode it but when I decode it, it contains some unknown characters. But the interesting part is, decoded text contains that I need data. So just I need to remove unknown characters and I need to split the data.
Do you have any suggestion to escape this unknown characters?
E.g base64 data:
Ct5bChoKCgjOzdDH7KDX+X4SCgjb1uri1IOfgUUaABABMgVlbi1VUzrYJAoFZW4tVVMaCVdpbiBDb2xvciK7C1dpbiBDb2xvciBvciBDb2xvciBXaW4gaXMgbm90IGp1c3QgYSBnYW1lLiBJdCBpcyBhIGlkZW9sb2d5IGluIHRoZSBzYW1lIHRpbWUuCldhdGNoIG91dDogU29tZSBjb2xvcnMgd2lsbCBhcHBlYXIgb24gdGhlIHNjcmVlbi4gVHJ5IHRvIGtlZXAgYWxsIG9mIHRoZW0gaW4geW91ciBtZW1vcnkuIFRoaXMgd2lsbCBtYWtlIHlvdXIgbWVtb3J5IHN0cm9uZ2VyIGFuZCB3aWxsIGltcHJvdmUgeW91ciBtZW1vcnkgY2FwYWJpbGl0aWVzLgpOb3RpY2U6IFRha2UgY29udHJvbCBvZiB0aGUgZW50aXJlIGZpZWxkLiBFdmVuIG5vdGljZSB0aGUgc2xpZ2h0ZXN0IGNoYW5nZS4gVGhpcyB3aWxsIG1ha2UgeW91IG1vcmUgY2FyZWZ1bCBhbmQgZ2l2ZSB5b3UgbmV3IHBlcmNlcHRpb24gZmVhdHVyZXMuCkZpbmQ6IE1hdGNoIGNvbG9ycy4gRmluZCBsb3N0LCBtaXNzaW5nIGNvbG9ycy4gU29tZSBjb2xvcnMgd2lsbCBiZSB2ZXJ5IGNsb3NlIHRvZ2V0aGVyLiBUaGlzIHdpbGwgZW5oYW5jZSB5b3VyIGFiaWxpdHkgdG8gcmVjb2duaXplIGRldGFpbHMuCldpbjogVGhlcmUgaXMgbm8gbG9zaW5nIGhlcmUuIFlvdSB3aW4gd2hhdGV2ZXIgeW91IGRvLiBCdXQgeW91IHN0aWxsIGZvY3VzIG9uIHdpbm5pbmcgYSBsb3QuClRpbWU6IERvIG5vdCBmb3JnZXQgdGhhdCB5b3UgaGF2ZSBhIGNlcnRhaW4gdGltZSB0byB3aW4gc29tZSB0aGluZ3MuIExlYXJuIGhvdyB0byB1c2UgeW91ciB0aW1lIGFuZCBwbGFuLgpMaWZlOiBZb3UgaGF2ZSBhIGNoYW5jZSBmb3Igc29tZXRoaW5nLiBCdXQgYSBjZXJ0YWluIG51bWJlci4gTmV2ZXIgZm9yZ2V0IHRoZSBudW1iZXIgb2YgdGhlc2UgY2hhbmNlcy4KCkEgZ3JlYXQgZ2FtZSBmcm9tIFNoYSBHYW1lcyBtYWtlcnMuCgotIFdhdGNoIG91dCwgbm90aWNlLCBmaW5kIHRoZSBjb2xvciBhbmQgd2luLgotIDQ1IGxldmVscyBpbiB0b3RhbC4KLSA0MCBkaWZmZXJlbnQgY29sb3Igb3B0aW9ucwotIFJpY2ggdmlzdWFsIGludGVyZmFjZS4KLSBVbmxpbWl0ZWQgZW50ZXJ0YWlubWVudC4KCjggZGlmZmVyZW50IGxhbmd1YWdlIHN1cHBvcnQ6CiAtIEVuZ2xpc2gKIC0gVHVya2lzaAogLSBSdXNzaWFuCiAtIENoaW5lc2UKIC0gU3BhbmlzaAogLSBBcmFiaWMKIC0gSmFwYW5lc2UKIC0gR2VybWFuCiAtIEZyZW5jaAogCkdhbWVwbGF5OgotIFdhdGNoIG91dCBmb3IgdGhlIGNvbG9ycyBpbiB0aGUgbWlkZGxlLgotIEFmdGVyIGEgd2hpbGUsIG5vdGljZSB0aGUgZGlzYXBwZWFyYW5jZXMgb2YgdGhlc2UgY29sb3JzIGFuZCBpZGVudGlmeSB0aGVtLgotIFNlbGVjdCB0aGUgY29sb3JzIHlvdSBzcGVjaWZ5IGZyb20gdGhlIGNvbG9yIHBhbmVsLgoKRm9sbG93IFVzOgotIGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFnYW1lcwotIGh0dHBzOi8vdHdpdHRlci5jb20vc2hhX2dhbWVzCi0gaHR0cHM6Ly9wbHVzLmdvb2dsZS5jb20vdS8wLzExMTMwOTUyMjcxNTM1MjE2ODY4OSpPQ29sb3IsIHdpbiwgbm90aWNlLCBsb3N0IGNvbG9yLCBtaXNzaW5nIGNvbG9yLCByZW1lbWJlciwgZm9jdXMsIHdhdGNoIG91dCwgZmluZDK0GArSCgqNAgqbAUFJNHhNTjE0aHYzM3dNS3o4NmRoMHVxREpZaUc0dThacnVkdC1ha0J0blZwS19sWUJQSmVHbjdXU3F5aEJTR3N2T2JEMmtDc3hPUkg1U3Bfd3FiZ0Nyc2dhdVA1akl2MU5SblhvcFZ2bndvNTFMN3ViRVpWb3dDcE1LcnI4TWo3ZjRESkJPdm1qeUlZYlhuMU9aSTl5YVBxS093EmVodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vakFkbV9Jc2lhVGF5WXVTN1Zod05SbGUyMlZXRFM2Tzc5OU9OYlFTR1MzNmJhMU1STWViS2pWMTdCVEk1bXFmbHBjdxjQDyDoByoACowCCpsBQUk0eE1OMHBTUDNlYXc3ODV4UGVlbzRHbmh0eEdPXy1rLTZ3YllLSk9qLXRIUUp6czZCTmQzaHVGcHNhUDRWd3ZOUmZFcE1OZGhSWGdtOThZMldCMjB0d0tUYmdGc00zY2xGSlM1NS1sbWVIUnVqakVRVl9ZS2JZTUdyanFVdU1rVkI1Q3lhdnZXUHZrcTRSTHpIQ3dTVG41c1ESZGh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9SQlIwcFJsNHhMdmRPU2ZscEdsV0NySU5oVjZtMjlQYjJYT01Ob1ZOX0RLVHFrZEFMRDRFUE9wdlVLZE1felpyYkEY0A8g6AcqAAqNAgqbAUFJNHhNTjNEVnpDVFRSc2dTRXN4YmlSOHBZVmkwa19kdDY1d0lWMWJmTFZaWk16bjcwbU05aTMwUWQ0THpHeE9fdHJBUlUxOGRjclJBUC1sV1NzcGtvMDB2VVlOMlljWkJOUllDVXBBVHZqRllGT3JmdlBsb0l6TFdBeEhCaV9xMGJRTVVWelBFZ2VIbWp1eTl6VktyLTA0aE5BEmVodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vR3FaOGNyLXhWOU5tNDZlZ0Zfb0tSdG5BR3dpUnQtdGlEZEtaUkNzVWhHbUtRN0FLa0cwUks5RkthQTJYOTRxZHlSVRjQDyDoByoACo0CCpsBQUk0eE1OM0lXS1lPZFcwT3VxNG9JMF9EYkxLV1lFb20wMGxvTlRxX3MtNUpVWlptNEltOVQ4Zk1KcW82dk42SlVOV3pLcnNrTm51T2JrMVlWYW8zRjBKR0ZwdENJdHR4MnlCSF93SXFWQjVFQTRxOUJEd3JMdERxRXZoYnAzVmw1TWRTdkttemF5VHVQTnFZTW5ZNTlCcFZsWFESZWh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9XR3p3T3AtT2FVQk81OE4wekhBdG5hZ216NTVOSzF5MGpuZWk4bFBsUU0yUFZGcmhZekRzazFSdlBRRVRqc2JyNGk0GNAPIOgHKgAKjgIKmwFBSTR4TU4wQkswUWJvbEVHR2ZJeHFVOE4yOGxocnc0Y19iODY5OWRlXzVpdXZ5OGJYMmdfRVU5azQyOWhNSk9GOWdYVjNieGJfczhHTDZoUXNoQm9JX002N21ibEl2bEc4Q0FSWVAzLTF1NF9ObEhoVmw3bHNYNjBVOC1aam5xZ2JFdE5ERXpuVEpVZi1PbmR1Ny1Nam5iejFnYxJmaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2hEbDB3UExMMWdqcDBWQ0p0R3ZCcVJ2SW8zcHJIYmlyVEd0TlBubERMM3hnZjBuM3dvYXpDMVppMUtCX2N4c1Y5ZndnGNAPIOgHKgAQAQqSAgqNAgqbAUFJNHhNTjBNT3pLcGdoMm5STFgyZnNfSktSR0g0NmFIYjg2YnRNUklDTzVJZmhvSnJLZFdxWDdCS1ZTTXpOVFFod2lGY0hyaTNvclQ4cHBWa1lpeE01bVBoNWxSbDFXRWFubHJsSFJGTXhBSFgyOVk1NFJucDlUVWFoN2VpNWV0X3Vyci1KQjY4Y20tWTV5cG1Odm5weFpIRlh3EmVodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vMS1oNTU3MWFvRG1Pdjh2NUlmWklGdm1ZRGo4Y21Eb2lfM0Jac1BDZEZ1djFWYXA2enJoVHp6cXBNTTByWnBlN1o2VRjkCiCaCCoAEAIKsgYKjQIKmwFBSTR4TU4yNUc2WmxValJNMTBmUFRPY3kyeVQwa3lNR1hwdzQ2VmJCZEVBbmw5dU5pYXlWTHpkWkpMb0M4RmtCNmJYakIzMWxjakl0TWlsamdMTDl0RUljRGktbU1nWWRKN0hTSHg1RHRNblg5YXlVWFg4MlpBM241ZU9DRjF1Sktkdmw5OXJrMExHNm9OWVVnZ2Y2b2EyMzE5QRJlaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL3E1bF9JdmFXdDJTaTVpbTRKYk42ZmNRZzdQenlsZGlxcVEwM2ZJbElsZkxNaURKNDRHa21VZ2IzUVFWdU1VUU9xSDQY5AogrAcqAAqOAgqbAUFJNHhNTjNmeDlvVHpxMHFneFNDUzBaSzIyRURzeXZSY21mT1h1d01tWVpIakY3SXBYR0p4RGZWR2VjRVozLWNTTHRJNlpmTG1RUXBZV2VsbDJNQVpUSm5yYzRVRm03UXlMWGRMcURIaG9lRzF1X0dWMWgtRjBNb2JfTmdvbWJHNEhzcWh3akh3eGJLZTJBM2pCOXRKNHcyNGdvEmZodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vdXhTNmJGT1UzX3dYbUF4UE1EU0E2Si1qcWtGUDFraXpLUjBzVjd0Q2RzelRPZ3Jpb1FKUGhDLVBaV0ZPRjdyUDF6ZTQY5AogrAcqAAqMAgqbAUFJNHhNTjJTdUZwUVMyUFlWMzNPYzBCS2UtV0FCdkExMzMzcTBJaURTbXpON1JjNlJhMGFyVDhsVUpVVW1WNzE1U3hKcXFxMVZOOWswUm83WDJ5bF9XTDlyTDhyUEdvVTBRMGs3X2M0WEthNEZBeFpBZGxIN09uUElJa1JUUHluQlBBZFExbWZXRzUxVThEWXJLcGlwUFU3dTk4EmRodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vTGxPaXNZdkQ0WkxhYlhqNmJRZk9obHJDRFl1elc1MDRpUURtZUczQjM4djFLanhRbk9oZlQtakNjaU41cmo0czFRGOQKIKwHKgAQAxL3Agr8AUFJNHhNTjMzbGxNS1pZdE5mVV9MYjlZclhzblFEWjVGM2VUbi1yMjZZU1NrWkZyajJzaVZhY3ZTOFg4VFVLRWE2NG9iSVRDVkNLWW1idGhlRFRmWGFBN1RGN2JJaVo0UERUOHd3NFZxYnFpb0d0TVJjS0FIUFVDMVA0N09sTFpQcEF6alYtQkdXdW9IczJKdHdJYkVQbjlTSzdYUF9YRzY0YkM3NGtTLVpQa2ZSeWdMd3NqeDVfVVRfWG9QRW0wbDJsYXJDOUhQUDhWeVROM0x4UVNCeHRYQmRVWU1vb2xYUV8zVHVGU2ljMXI1ZExLd2ZUVFNLUkxTbnVHQhJlaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL3BGNXpITGY5cXU5emRKYVc5VkNlRkVqOThIcEdkSkQzbXJIVmx3NU5XeDJvbXVkX1ZFbzByeWhtUURrOGV6NzhRamsYgAQggAQqCQoHI0Y3RjdGNxqWAgqbAUFJNHhNTjJBNmRRZFFlblk1SEQ3VTdRSDFGNktrVE1na3hRVWZ0TXdMQ3FGZ3ZPdkotU2JmOUxXVEl5QU1VYWVXSVhvSkFnSjlydS00dkFiV094Rmt0T2xEWkszUW9LNVZ5b1ZaUER1dUhudFBpVEU1U1FEQWV4RTBkX0ZfWWExZ1gzc0ZIZjI4SEcwRVJlVWVESDg2SWhCR2JjEmVodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vR1FIb0pZZTBxeVNNcW83c05SWm1KOGdsRGxRV055WlZ5VXdmSWVtMjlRbEtUVHRTamxlYVZqWWNmdG45b1dKR0I2axiACCD0AyoJCgcjMDQwNDA0QAE6mh4KBXRyLVRSGglXaW4gQ29sb3IimAxSZW5rbGVyaSBlbiBpeWkgxZ9la2lsZGUgw7bEn3Jlbi4gRmFya8SxbmRhbMSxxJ/EsW7EsSBhcnTEsXIuIEhhdMSxcmxhbWEgZ8O8Y8O8bsO8IGFydMSxci4gSGFmxLF6YW7EsSBnw7zDp2xlbmRpci4gSGF5YXR0YSBrYXliZXRtZWsgZGl5ZSBiaXLFn2V5aW4gb2xtYWTEscSfxLFuxLEgw7bEn3Jlbi4KQmF6xLEgxZ9leWxlcmkga2F6YW5tYWsgacOnaW4gYmVsbGkgemFtYW7EsW7EsW4gb2xkdcSfdW51IHVudXRtYS4gWmFtYW7EsW7EsSBuYXPEsWwga3VsbGFubWFuIHZlIHBsYW5sYW1hbiBnZXJla3RpxJ9pbmkgw7bEn3Jlbi4gQmlyIMWfZXlsZXIgacOnaW4gxZ9hbnNsYXLEsW4gdmFyZMSxcgphbWEgYmVsbGkgc2F5xLFkYS4gQnUgxZ9hbnNsYXLEsW7EsW4gc2F5xLFzxLFuxLEgYXNsYSB1bnV0bWEuIEVsaW5kZW4gZ2VsZW5pIHlhcG1hLCBlbGluZGVuIGdlbGVuaW4gZW4gaXlpc2luaSBkZSB5YXBtYSBrZW5kaW5pIGHFn21heWEgb2Rha2xhbi4gS8O2dMO8IHNvbnXDp2xhciBzZW5pCnnEsWxkxLFybWFzxLFuIHRhbSB0ZXJzaW5lIGthbcOnxLFsYXPEsW4uCgpXaW4gQ29sb3InxLFuIEFtYcOnbGFyxLE6Ci0gS2F5Ym9sYW4sIGthecSxcCByZW5naSBidWwuIFNvbnJhc8SxbmRhIGthemFuLiBEYWhhIMOnb2sga2F6YW5tYWsgacOnaW4gdcSfcmHFny4KLSBEaWtrYXRpbmkgdG9wbGEsIGhhZsSxemFuxLEgZ2VuacWfbGV0LCBpbGVybGV0LgotIEV6YmVybGVtZSwgYmlyIG1hbnTEsWsgw7ZyZ8O8c8O8IGt1ci4gCi0gUmVua2xlcmluIHPEsXJhc8SxbmEgdGFrxLFsbWEuCi0gUmVua2xlciBhcmFzxLFuZGFraSBrw7zDp8O8ayBmYXJrbGFyxLEgeWFrYWxhLiBCdSBzZW5pbiBidSBoYXlhdHRhIHlhcHTEscSfxLFuIGhhdGFsYXLEsSBhemFsdGFjYWsuCgrDlnplbGxpa2xlcjoKLSA0MCBmYXJrbMSxIHJlbmsgc2XDp2VuZcSfaQotIEfDtnogYWzEsWPEsSBnw7Zyc2VsIGdyYWZpa2xlci4KLSA0NSBmYXJrbMSxIHNldml5ZS4KLSBUw7xya8OnZSBkYWhpbCA4IGRpbCBkZXN0ZcSfaS4KCSAtIMSwbmdpbGl6Y2UKCSAtIFTDvHJrw6dlCgkgLSBSdXPDp2EKCSAtIMOHaW5jZSAoR2VsZW5la3NlbCkKCSAtIMSwc3BhbnlvbGNhCgkgLSBBcmFww6dhCgkgLSBKYXBvbmNhCgkgLSBBbG1hbmNhCgkgLSBGcmFuc8SxemNhCgpPeW5hbsSxxZ86Ci0gT3J0YWRhIGJlbGlyZW4gcmVua2xlcmUgZGlra2F0IGV0LgotIEJlbGxpIHphbWFuIHNvbnJhIGJ1IHJlbmtsZXJkZW4ga2F5Ym9sYW5sYXLEsSBmYXJrIGV0IHZlIGJlbGlybGUuCi0gQnUgYmVsaXJsZWRpxJ9pbiByZW5rbGVyaSByZW5rIHBhbmVsaW5kZW4gc2XDpy4KClDDvGYgTm9rdGFsYXLEsToKLSBIxLF6bMSxIG9sLgotIENhbiBrYXliZXRtZS4KLSBEacSfZXIga2FyYWt0ZXJsZXJpIHNhdMSxbiBhbC4gQsO2eWxlbGlrbGUgZGFoYSBmYXpsYSBwdWFuIGthemFuLgoKVGFraXAgRWRpbjoKLSBodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhZ2FtZXMKLSBodHRwczovL3R3aXR0ZXIuY29tL3NoYV9nYW1lcwotIGh0dHBzOi8vcGx1cy5nb29nbGUuY29tL3UvMC8xMTEzMDk1MjI3MTUzNTIxNjg2ODkqVlJlbmssIHpla2EsIGhhdMSxcmxhLCBidWwsIGthecSxcCByZW5rLCBvZGFrLCBlemJlcmxlLCBoYWbEsXphLCBkw7zFn8O8biwga2F6YW4sIGl6bGVlMpIRCtQKCo0CCpsBQUk0eE1OMEdNUkFwZWM1ZWtVc0VjM2lLZzVoemUySWkxS2U5cWFlWHluWl9BSFM0Y0hWeFBwVWpTX0FTTUdHbHhGaFlVOWJmRkt5NEkyNlBUUHNBT3RPX3ROTzYxRGFkMmtpNzdTZFA0OUNrREgzcTNCbUpwR1JSM2FWSERaSGVZZF9PRE5PNUs4VTE5UzhvQVgxa1UwVXJWejgSZWh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9UVXVhVmp6enpFUmRQSmtGQUhONHFURGV1RWxBMU1KRFRBbW0tMTk0SVNfTUEyV2lTUDA4RGdVSHY2TnBYX2phV0I0GNAPIOgHKgAKjQIKmwFBSTR4TU4wNjZuZUhKbjNqckJCTFJiNTlEQmktZmUzTVV4c045dFNvYzYzdUxWQVZBWHlZU005VWRFMWhDTVdvX0N3cndsaWp5YkRpMTdYQWtnT0ltMENycXRaR0ZfdlFZbXNuczRUdmpmTm5KejF6eTc1dFM1NjNHbnRVV2RweHd6b0p1N1MwZW9FMkJIMXMwdVI4SDhKdlAtRRJlaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL3JMSjRsZHR3TXRRa1YzY29Yc2tSZHhQQWdsVEN2eEV1b0NKR0ZCU0cxMldtZzY4QmZMQ21Hb1JxM3V5bUZmTDNKSUkY0A8g6AcqAAqNAgqbAUFJNHhNTjF6cW4tcEZIemFHdFNsQzBiTGhPNU9aMXZBbDFaY1FMT2RGYUtrTG80UUY4ZDI5SmVfanFoS3h5NVR5MG1OZUZ4MmZ0eXZscGZva1pqYUxtNGJBZEp3bW9NRE1EVnFUUUZWOG1taUZZckVSOXhkdzFzMDcwbUlyZjl6QnBMa25URjNabWRvWWZ3c2RENkF1V1YwaEZjEmVodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vUXoxaTYtbi1BRURaVkxXNkYzWVdaTUhaZHNKVmd5MDBTVWtueGQ0WFlzdUNxd19LZDRyRkJ1RHBzOFItalJNa0FFaxjQDyDoByoACo4CCpsBQUk0eE1OMW5CeDdpWWJVdWdILW1uMlp4bk0tejZoZmRTZ0I0bER4aWR1cVNBa2lkbkNGbDJmRGJyTzFGemlBckl3YnhmM2RCUl9sOWl5Q0RIUXBCNTViYXMxdTJVb0RtWFFCZC03NE9QWFBieVNTTEVZVHAtMm9VSmg1eF9hNnhBa0JqS09nSU55VmNrVjVnazhtZ09Wa09SUFkSZmh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9XTzZKNURDSi1SSmROYndRNHlabWRyVEdyQUx6UlZtYmppTkpzSnZtNDFqcF9ueEMxT0w1alh0R2dkTWJYUUFYM1RzcRjQDyDoByoACo4CCpsBQUk0eE1OMXVwTGdIN1FGUnpiZWVXQnppbXU1dnliZVJMaVJGemtJbUhkUzg4V1BGZURmVmFMZTk5MVRNbnI1dVZMRFBKaUpVWGpXZUVGV0I5c0dhdW5LMUEyTldfek5nYk1TMnQtNnFCVklNbGFpUElaQ3pPaG94NWpZQUJFS01UYkhuenFBWWxOTFh3MDlwNlpVMTg3RlJ3ejQSZmh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9SSG1rTUVhX0MxQTFZVi1EQ2E2dFg4NFpzT3QwZHRfYU1pMEJpWnhHR0NMNXNVRFVfTDllR2k3ZUlOVEE2QzlkM3RQZRjQDyDoByoAEAEKkwIKjgIKmwFBSTR4TU4xWXdLQ2JXbnA1VHNnNE82Y29aVjJsUldmT0hLeGpzUnhjM0tURjlJd3lEcXkyY3BtLUVtdUZhSEJqQlUtY0ZINmtlYWV3NUd1RXRuR1B6X0RWUXdqaEhVdm5MckxsOEcwdi1TQ2hwMXl4QVhmNDhLQjZneFVsNUJOWXlwWjhxWkdQME41ZVRfa1NRNFE1ajJaSTlIOBJmaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL0RHbml0XzlhTzZ3WnRXajdBVlRVMTZZeml4RG04enFGU0ROSlMtNWNrQS0xSVVhZU01ZGtMdTk2MWFXZmF3ZmRMZ1pqGOQKIJoIKgAQAgqiBAqMAgqbAUFJNHhNTjBFMXAzQVpGeEkzUHRCYlZrTHBwMDFLN3pYWGlWQWlTaXBEeTlkM2U1UWMyQUpSNXFUU05lTV8tNl92dmNZLWxXVUtzZVI3RTFUMm5VYWNIQUVvUEx2dElHREM2VnNWNnp2RFFxckhHRFNhNWFPSS1URldaS3U5cGxZMUZyUjVDaHRyZGFWalUxak8zajlJYU9NY1FZEmRodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vVGJQQlFoOWVleVhaMnhPVGxzTVNFOGhMSVdwR0RYYW93UVAxbFkzc2VsaDNMU2I3eGV5SjU2TnY4aklnVnBoeDhnGOQKIKwHKgAKjgIKmwFBSTR4TU4yMzJGWDhSYk40cmRfMFplc0tzX2xoVXhNSlFXcGVRblFOQUJWYkZONVBkMGJ5ZGhEb0xYOXFqMXF3SnMwVExlQ2l5VXZuM3lrRm1PdG1aZ0VXN0JxZW1kOW44aER1ZW9qZjNBUG5NRmVKU1FHU1VZOVE3MnF3d1VjOGxxLXY3NUVtRTZONGRJcEpzdmJGMUt4dEQ4ZxJmaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2tqby1mRGxvRnN5QTh2NG5FUjAxaktsQ1M3NHJuTExIcUtDSFhDeVJRc1hhQk1CaV9pRVM1OGkteHNSQkQ2WWhoNkQ0GOQKIKwHKgAQAzqiDAoFZW4tQVUaCVdpbiBDb2xvciK7C1dpbiBDb2xvciBvciBDb2xvciBXaW4gaXMgbm90IGp1c3QgYSBnYW1lLiBJdCBpcyBhIGlkZW9sb2d5IGluIHRoZSBzYW1lIHRpbWUuCldhdGNoIG91dDogU29tZSBjb2xvcnMgd2lsbCBhcHBlYXIgb24gdGhlIHNjcmVlbi4gVHJ5IHRvIGtlZXAgYWxsIG9mIHRoZW0gaW4geW91ciBtZW1vcnkuIFRoaXMgd2lsbCBtYWtlIHlvdXIgbWVtb3J5IHN0cm9uZ2VyIGFuZCB3aWxsIGltcHJvdmUgeW91ciBtZW1vcnkgY2FwYWJpbGl0aWVzLgpOb3RpY2U6IFRha2UgY29udHJvbCBvZiB0aGUgZW50aXJlIGZpZWxkLiBFdmVuIG5vdGljZSB0aGUgc2xpZ2h0ZXN0IGNoYW5nZS4gVGhpcyB3aWxsIG1ha2UgeW91IG1vcmUgY2FyZWZ1bCBhbmQgZ2l2ZSB5b3UgbmV3IHBlcmNlcHRpb24gZmVhdHVyZXMuCkZpbmQ6IE1hdGNoIGNvbG9ycy4gRmluZCBsb3N0LCBtaXNzaW5nIGNvbG9ycy4gU29tZSBjb2xvcnMgd2lsbCBiZSB2ZXJ5IGNsb3NlIHRvZ2V0aGVyLiBUaGlzIHdpbGwgZW5oYW5jZSB5b3VyIGFiaWxpdHkgdG8gcmVjb2duaXplIGRldGFpbHMuCldpbjogVGhlcmUgaXMgbm8gbG9zaW5nIGhlcmUuIFlvdSB3aW4gd2hhdGV2ZXIgeW91IGRvLiBCdXQgeW91IHN0aWxsIGZvY3VzIG9uIHdpbm5pbmcgYSBsb3QuClRpbWU6IERvIG5vdCBmb3JnZXQgdGhhdCB5b3UgaGF2ZSBhIGNlcnRhaW4gdGltZSB0byB3aW4gc29tZSB0aGluZ3MuIExlYXJuIGhvdyB0byB1c2UgeW91ciB0aW1lIGFuZCBwbGFuLgpMaWZlOiBZb3UgaGF2ZSBhIGNoYW5jZSBmb3Igc29tZXRoaW5nLiBCdXQgYSBjZXJ0YWluIG51bWJlci4gTmV2ZXIgZm9yZ2V0IHRoZSBudW1iZXIgb2YgdGhlc2UgY2hhbmNlcy4KCkEgZ3JlYXQgZ2FtZSBmcm9tIFNoYSBHYW1lcyBtYWtlcnMuCgotIFdhdGNoIG91dCwgbm90aWNlLCBmaW5kIHRoZSBjb2xvciBhbmQgd2luLgotIDQ1IGxldmVscyBpbiB0b3RhbC4KLSA0MCBkaWZmZXJlbnQgY29sb3Igb3B0aW9ucwotIFJpY2ggdmlzdWFsIGludGVyZmFjZS4KLSBVbmxpbWl0ZWQgZW50ZXJ0YWlubWVudC4KCjggZGlmZmVyZW50IGxhbmd1YWdlIHN1cHBvcnQ6CiAtIEVuZ2xpc2gKIC0gVHVya2lzaAogLSBSdXNzaWFuCiAtIENoaW5lc2UKIC0gU3BhbmlzaAogLSBBcmFiaWMKIC0gSmFwYW5lc2UKIC0gR2VybWFuCiAtIEZyZW5jaAogCkdhbWVwbGF5OgotIFdhdGNoIG91dCBmb3IgdGhlIGNvbG9ycyBpbiB0aGUgbWlkZGxlLgotIEFmdGVyIGEgd2hpbGUsIG5vdGljZSB0aGUgZGlzYXBwZWFyYW5jZXMgb2YgdGhlc2UgY29sb3JzIGFuZCBpZGVudGlmeSB0aGVtLgotIFNlbGVjdCB0aGUgY29sb3JzIHlvdSBzcGVjaWZ5IGZyb20gdGhlIGNvbG9yIHBhbmVsLgoKRm9sbG93IFVzOgotIGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFnYW1lcwotIGh0dHBzOi8vdHdpdHRlci5jb20vc2hhX2dhbWVzCi0gaHR0cHM6Ly9wbHVzLmdvb2dsZS5jb20vdS8wLzExMTMwOTUyMjcxNTM1MjE2ODY4OSpOQ29sb3IsIGJyYWluLCBicmFpbiBzdG9ybSwgYmVzdCBnYW1lLCBjb2xvciBzd2lmdCwgY29sb3IgcmFjZXIsIGxhc3QgY29sb3IsaGl0MgA6mQwKBWVuLUdCGgVDb2xvciK7C1dpbiBDb2xvciBvciBDb2xvciBXaW4gaXMgbm90IGp1c3QgYSBnYW1lLiBJdCBpcyBhIGlkZW9sb2d5IGluIHRoZSBzYW1lIHRpbWUuCldhdGNoIG91dDogU29tZSBjb2xvcnMgd2lsbCBhcHBlYXIgb24gdGhlIHNjcmVlbi4gVHJ5IHRvIGtlZXAgYWxsIG9mIHRoZW0gaW4geW91ciBtZW1vcnkuIFRoaXMgd2lsbCBtYWtlIHlvdXIgbWVtb3J5IHN0cm9uZ2VyIGFuZCB3aWxsIGltcHJvdmUgeW91ciBtZW1vcnkgY2FwYWJpbGl0aWVzLgpOb3RpY2U6IFRha2UgY29udHJvbCBvZiB0aGUgZW50aXJlIGZpZWxkLiBFdmVuIG5vdGljZSB0aGUgc2xpZ2h0ZXN0IGNoYW5nZS4gVGhpcyB3aWxsIG1ha2UgeW91IG1vcmUgY2FyZWZ1bCBhbmQgZ2l2ZSB5b3UgbmV3IHBlcmNlcHRpb24gZmVhdHVyZXMuCkZpbmQ6IE1hdGNoIGNvbG9ycy4gRmluZCBsb3N0LCBtaXNzaW5nIGNvbG9ycy4gU29tZSBjb2xvcnMgd2lsbCBiZSB2ZXJ5IGNsb3NlIHRvZ2V0aGVyLiBUaGlzIHdpbGwgZW5oYW5jZSB5b3VyIGFiaWxpdHkgdG8gcmVjb2duaXplIGRldGFpbHMuCldpbjogVGhlcmUgaXMgbm8gbG9zaW5nIGhlcmUuIFlvdSB3aW4gd2hhdGV2ZXIgeW91IGRvLiBCdXQgeW91IHN0aWxsIGZvY3VzIG9uIHdpbm5pbmcgYSBsb3QuClRpbWU6IERvIG5vdCBmb3JnZXQgdGhhdCB5b3UgaGF2ZSBhIGNlcnRhaW4gdGltZSB0byB3aW4gc29tZSB0aGluZ3MuIExlYXJuIGhvdyB0byB1c2UgeW91ciB0aW1lIGFuZCBwbGFuLgpMaWZlOiBZb3UgaGF2ZSBhIGNoYW5jZSBmb3Igc29tZXRoaW5nLiBCdXQgYSBjZXJ0YWluIG51bWJlci4gTmV2ZXIgZm9yZ2V0IHRoZSBudW1iZXIgb2YgdGhlc2UgY2hhbmNlcy4KCkEgZ3JlYXQgZ2FtZSBmcm9tIFNoYSBHYW1lcyBtYWtlcnMuCgotIFdhdGNoIG91dCwgbm90aWNlLCBmaW5kIHRoZSBjb2xvciBhbmQgd2luLgotIDQ1IGxldmVscyBpbiB0b3RhbC4KLSA0MCBkaWZmZXJlbnQgY29sb3Igb3B0aW9ucwotIFJpY2ggdmlzdWFsIGludGVyZmFjZS4KLSBVbmxpbWl0ZWQgZW50ZXJ0YWlubWVudC4KCjggZGlmZmVyZW50IGxhbmd1YWdlIHN1cHBvcnQ6CiAtIEVuZ2xpc2gKIC0gVHVya2lzaAogLSBSdXNzaWFuCiAtIENoaW5lc2UKIC0gU3BhbmlzaAogLSBBcmFiaWMKIC0gSmFwYW5lc2UKIC0gR2VybWFuCiAtIEZyZW5jaAogCkdhbWVwbGF5OgotIFdhdGNoIG91dCBmb3IgdGhlIGNvbG9ycyBpbiB0aGUgbWlkZGxlLgotIEFmdGVyIGEgd2hpbGUsIG5vdGljZSB0aGUgZGlzYXBwZWFyYW5jZXMgb2YgdGhlc2UgY29sb3JzIGFuZCBpZGVudGlmeSB0aGVtLgotIFNlbGVjdCB0aGUgY29sb3JzIHlvdSBzcGVjaWZ5IGZyb20gdGhlIGNvbG9yIHBhbmVsLgoKRm9sbG93IFVzOgotIGh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFnYW1lcwotIGh0dHBzOi8vdHdpdHRlci5jb20vc2hhX2dhbWVzCi0gaHR0cHM6Ly9wbHVzLmdvb2dsZS5jb20vdS8wLzExMTMwOTUyMjcxNTM1MjE2ODY4OSpJQ29sb3IsIHdpbiwgZ2FtZSwgcmFjZSwgYmVzdCwgZGlmZmVyZW50LCBpbXByb3ZlLCBza2lsbCwgZWFzeSwgYnJhaW4sIGJ1eTIAEhcKE0V4dGVybmFsIEV4cGVyaW1lbnQQAg==
It is a base64 encoded protobuf data. you can decode it from https://protogen.marcgravell.com

issue decoding base64 text: prefix "77u_" causes junk output

I'm currently trying to decode my base64 encoded string. The issue I'm facing is it gives me junk decoded result but when I remove 77u_ in front from it, the decode result will get fine. My question is that, is there any other way to decode it?
Following is my encoded string:
77u_RGF0ZSxUeXBlLENvbmZpcm1hdGlvbiBDb2RlLFN0YXJ0IERhdGUsTmlnaHRzLEd1ZXN0LExpc3RpbmcsRGV0YWlscyxSZWZlcmVuY2UsQ3VycmVuY3ksQW1vdW50LFBhaWQgT3V0LEhvc3QgRmVlLENsZWFuaW5nIEZlZSxHcm9zcyBFYXJuaW5ncyxPY2N1cGFuY3kgVGF4ZXMNCjEwLzMwLzIwMTgsUmVzZXJ2YXRpb24sSE05U1BUOUNYQywxMC8yOS8yMDE4LDMsQWFyb24gSmFibG9uc2tpLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCwxNDUuNTAsLDQuNTAsMzAuMDAsMTUwLjAwLDIxLjANCjEwLzI2LzIwMTgsUmVzZXJ2YXRpb24sSE0zM0gyWEU0SiwxMC8yNS8yMDE4LDMsWWIgQmFiaWUsRWxlZ2FudCBQcml2YXRlIFJvb20gaW4gYSBNb2Rlcm4gTHV4dXJ5IEJ1bmdhbG93LCwsVVNELDE3NC42MCwsNS40MCwzMC4wMCwxODAuMDAsMjUuMg0KMTAvMjIvMjAxOCxSZXNlcnZhdGlvbixITVdSRk1KNU1LLDEwLzIxLzIwMTgsNCxHYWJyaWVsbGEgRGFsdG9uLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCwxNjQuOTAsLDUuMTAsMzAuMDAsMTcwLjAwLDIzLjgNCjEwLzE4LzIwMTgsUmVzZXJ2YXRpb24sSE1NUFk4UDJRRiwxMC8xNy8yMDE4LDQsUMOpdGVyIFZhcmdhLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCwyMjMuMTAsLDYuOTAsMzAuMDAsMjMwLjAwLDMyLjINCjEwLzE2LzIwMTgsUmVzZXJ2YXRpb24sSE1KODVDTTNCWiwxMC8xNS8yMDE4LDIsR3JlZ29yIFNwcmljayxFbGVnYW50IFByaXZhdGUgUm9vbSBpbiBhIE1vZGVybiBMdXh1cnkgQnVuZ2Fsb3csLCxVU0QsODcuMzAsLDIuNzAsMzAuMDAsOTAuMDAsMTIuNg0KMTAvMTMvMjAxOCxSZXNlcnZhdGlvbixITVFOU1BRQUpYLDEwLzEyLzIwMTgsMyxBbWJlciBEdWNrc3dvcnRoLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCwxNDUuNTAsLDQuNTAsMzAuMDAsMTUwLjAwLDIxLjANCjEwLzEyLzIwMTgsUmVzZXJ2YXRpb24sSE1UQlFCREFFMiwxMC8xMS8yMDE4LDIsR29yZG9uIEJsZWVjaG1vcmUsRWxlZ2FudCBQcml2YXRlIFJvb20gaW4gYSBNb2Rlcm4gTHV4dXJ5IEJ1bmdhbG93LCwsVVNELDU4LjIwLCwwLjk4LDAuMDAsNTkuMTgsOC40DQoxMC8xMi8yMDE4LFJlc2VydmF0aW9uLEhNWEZEVzlNRkosMTAvMTEvMjAxOCwxLEhhbXphIE5zb3VyLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCw1My4zNSwsMS42NSwzMC4wMCw1NS4wMCw3LjcNCjEwLzEwLzIwMTgsUmVzZXJ2YXRpb24sSE1XWDVQQ0hBUSwxMC8wOS8yMDE4LDIsTGVhaCBXLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCw4Ny4zMCwsMi43MCwzMC4wMCw5MC4wMCwxMi42DQoxMC8wNC8yMDE4LFJlc2VydmF0aW9uLEhNQzNGTk04RFcsMTAvMDMvMjAxOCw2LFNhbmRybyBDemVrYWksRWxlZ2FudCBQcml2YXRlIFJvb20gaW4gYSBNb2Rlcm4gTHV4dXJ5IEJ1bmdhbG93LCwsVVNELDM3OC4zMCwsMTEuNzAsMzAuMDAsMzkwLjAwLDU0LjYNCjEwLzAxLzIwMTgsUmVzZXJ2YXRpb24sSE1UUzk0Uk1FMywwOS8zMC8yMDE4LDMsQnJhbmRlbiBIaWNrcyxFbGVnYW50IFByaXZhdGUgUm9vbSBpbiBhIE1vZGVybiBMdXh1cnkgQnVuZ2Fsb3csLCxVU0QsMTE2LjQwLCwzLjYwLDMwLjAwLDEyMC4wMCwxNi44DQo
It's the _ that messes up the result. Everything else is perfectly fine base64 encoded. The base64 code table doesn't contain a _, it is a substitiution character for / in base64url encoding.
When you replace _ with / the decoding works fine.
When I tested it on https://www.base64decode.org/ and chose ASCII as the source character set, I got  in front of the text, which is the byte order mark for UTF-8. When I changed to utf-8, there was nothing visible in front of the text.
A short test in node.js also proves that '77u/' is indeed the base64 code of the BOM:
var messageB64 ='77u/'
var buf = Buffer.from(messageB64, 'base64');
console.log(buf) // output: <Buffer ef bb bf>
Conclusion:
your data is base64url decoded
you should change it back to base64 code before you decode
the extra characters are a harmless byte order marker which is invisible if you use utf-8 encoding.

I have encoded string but i don't know what type is it

I have two encoded strings that used same encoding method but i don't know what type it is.
I have tried using base64 decode but it didn't work.
This is the first encoded string I have 3qpY0Vw86MZykGfqc7jnVg==
This is the second encoded string I have nB6dtl3iA5IE1Z+g9SpBrw==
They are using same encoding method.
I want to know what type of encoding that used in that strings. Also I want to know how to decode it.
Those base64 payload may be containing something else than a string, like a raw binary, an image, a ciphered payload, etc. that can't be displayed as text.
base64 is not exclusively used to encode text.
For example to save to a file:
$ printf %s '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' | base64 -d > stackoverflow.png

MIME base64 encoding ambiguity in rfc2045

According to MIME base64 encoding specified in rfc2045, the base64 encoded data must be split in lines of at most 76 characters.
When decoding, all characters not belonging to the base64 alphabet must ne ignored.
How do we determine the end of MIME base64 encoded data ?
When you've found the start of a base64 encoded object, it should always be possible to find the end without decoding it. Examples:
You might have an email message whose top-level encoding is base64. In that case, the end of the base64 stuff is the end of the body. The end of the body is recognized not by any internal structure, but by the lone . at the end of the SMTP DATA.
If you're reading an email message from an mbox file instead of receiving it via SMTP, the mbox format is responsible for telling you where the end of the message is.
If you have a multipart email body with one part base64, you can scan for the multipart boundary first to find the end of the body part, then pass the whole body part to the base64 decoder.
Similarly, if you have an RFC2047-encoded header with base64, you can find the terminating =? first, then pass the encoded portion to the base64 decoder.
Because the terminators are already identified before base64 decoding begins, the decoder never sees the terminator, so the rule "characters not belonging to the base64 alphabet" is not relevant.
The 2 steps of finding the end of the base64 data and decoding can be combined into a single loop over the input, for efficiency. But conceptually they are separate.

Base64 decode gives garbled result

I copy and paste a text from the web that is base64 encoded to this site http://www.motobit.com/util/base64-decoder-encoder.asp ,
but it gives a strange result , it look like a garbled.
May i ask ....how can i decode the text correctly , thank you.
nUł"˘ÂUÓ"…F˙i+Şž›‘Ş˘éăŁqëKĄ®qâ %˘ dŞn‘ĄŐňŢ^{łcąWq\)ńÂÔ€
Here is the base64 encoded text
blWzIh+iwgYbVdODDyKFRv9pFCuqnpuRqqLp46Nx60ulrnHioCWiIARk-qm6RpdUB8t5ee7NjG7lXcVwp8cLUg==

Resources