A virtual teacher who reveals to you the great secrets of Base64

What is "aaaaigz0...my4xmda="?

What is "aaaaigz0...my4xmda="?

Since I launched this website, I have received many requests to help decode or repair various Base64 values. So the idea came up to create the Repair Tool, which is able to fix malformed strings in automatic mode. Nevertheless, that tool is not a silver bullet and it cannot repair all strings. Therefore, it is not surprising that people still contact me to help them. Well, I am not an almighty magician, so I need the help of others. Maybe you can help me solve a new puzzle?

The Problem: We have an “almost valid” Base64 string in which all letters are lowercase. Because of this, we cannot decode the string to get the original data.

Known Details: It seems this string is a MP4 v1 video file, that have the header 00 00 00 20 66 74 79 70 69 73 6f 6d. Most likely this is a stub file used for tests and has a very small resolution (something like 2×2).

The objective: Find out the original string so that we can decode it using the Base64 Decode tool and play the obtained file using a regular video player. If you know any details about this string or have the original string, please submit a comment or contact me. Feel free to submit even the craziest ideas. Even the smallest clues can help me solve the puzzle. Thank you!


Malformed Base64: data:video/mp4;base64,aaaaigz0exbpc29taaacaglzb21pc28yyxzjmw1wndeaaaaiznjlzqaaas1tzgf0aaacrgyf//+q3expvebzslewlngg2spu73gynjqglsbjb3jlide0mibymjm4osa5ntzjogq4ic0gsc4ynjqvtvbfry00iefwqybjb2rlyyatienvchlszwz0idiwmdmtmjaxncatigh0dha6ly93d3cudmlkzw9syw4ub3jnl3gynjquahrtbcatig9wdglvbnm6ignhymfjptegcmvmptmgzgvibg9jaz0xoja6mcbhbmfsexnlptb4mzowedexmybtzt1ozxggc3vibwu9nybwc3k9msbwc3lfcmq9ms4wmdowljawig1pegvkx3jlzj0xig1lx3jhbmdlpte2ignocm9tyv9tzt0xihryzwxsaxm9msa4edhky3q9msbjcw09mcbkzwfkem9uzt0ymswxmsbmyxn0x3bza2lwptegy2hyb21hx3fwx29mznnldd0tmib0ahjlywrzptmgbg9va2fozwfkx3rocmvhzhm9msbzbgljzwrfdghyzwfkcz0wig5yptagzgvjaw1hdgu9msbpbnrlcmxhy2vkptagymx1cmf5x2nvbxbhdd0wignvbnn0cmfpbmvkx2ludhjhptagymzyyw1lcz0zigjfchlyyw1pzd0yigjfywrhchq9msbix2jpyxm9mcbkaxjly3q9msb3zwlnahriptegb3blbl9nb3a9mcb3zwlnahrwptiga2v5aw50pti1mcbrzxlpbnrfbwlupti0ihnjzw5ly3v0ptqwigludhjhx3jlznjlc2g9mcbyy19sb29rywhlywq9ndagcmm9y3jmig1idhjlzt0xignyzj0ymy4wihfjb21wptaunjagcxbtaw49mcbxcg1hed02osbxchn0zxa9ncbpcf9yyxrpbz0xljqwigfxpte6ms4wmacaaaaad2wihaar//72c3wka22xgqaaav5tb292aaaabg12agqaaaaaaaaaaaaaaaaaaapoaaaakgabaaabaaaaaaaaaaaaaaaaaqaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaackhryywsaaabcdgtozaaaaamaaaaaaaaaaaaaaaeaaaaaaaaakgaaaaaaaaaaaaaaaaaaaaaaaqaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaeaaaaaacaaaaagaaaaaacrlzhrzaaaahgvsc3qaaaaaaaaaaqaaacoaaaaaaaeaaaaaaabtzglhaaaaig1kagqaaaaaaaaaaaaaaaaaadaaaaacabxhaaaaaaatagrscgaaaaaaaaaadmlkzqaaaaaaaaaaaaaaafzpzgvvsgfuzgxlcgaaaaflbwluzgaaabr2bwhkaaaaaqaaaaaaaaaaaaaajgrpbmyaaaaczhjlzgaaaaaaaaabaaaadhvybcaaaaabaaabc3n0ymwaaacnc3rzzaaaaaaaaaabaaaal2f2yzeaaaaaaaaaaqaaaaaaaaaaaaaaaaaaaaaacaaiaegaaabiaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay//8aaaaxyxzjqwfkaar/4qayz2qacqzzx5zcbeaaaamaqaaadapeiwwaaqagaovjyylaaaaaehbhc3aaaaabaaaaaqaaabhzdhrzaaaaaaaaaaeaaaabaaacaaaaabxzdhnjaaaaaaaaaaeaaaabaaaaaqaaaaeaaaauc3rzegaaaaaaaalfaaaaaqaaabrzdgnvaaaaaaaaaaeaaaawaaaaynvkdgeaaababwv0yqaaaaaaaaahagrscgaaaaaaaaaabwrpcmfwcgwaaaaaaaaaaaaaaaatawxzdaaaacwpdg9vaaaahwrhdgeaaaabaaaaaexhdmy1ny44my4xmda=

By the way, I think to develop a brute-force tool that will change each letter to uppercase until it will find the right file format, but this method may lead to a lot of errors. Anyway, I will update the post as soon as I find out or receive new details.

Comments (60)

I hope you enjoy this discussion. In any case, I ask you to join it.

  • ycam,
    872/5000

    Hello,

    Very interesting subject!

    I wanted to know if your work had been successful with this type of decoding?

    Indeed, I am interested in the "repair" of files encoded in base64, whose base64 would have been put in all upper case (or lowercase).

    My ultimate goal is to analyze compression rates (zlib / gzip) between a base64, a base64-capital or a base64-lowercase.

    Only the problem is: "how to find the initial case of base64 to be able to decode it?".

    Knowing that encoded files can be of any type, but initially only flat text files (which may contain alpha-numeric characters, symbols, spaces / line breaks and accented characters).

    Your help would be very precious to me!

    Thanking you for your interest and your work,

    Excellent day,
    • Administrator,
      Hello,
      I am very glad that I am not the only one who is interested in solving this. Unfortunately, brute-forcing gives a lot of false positives even if the original data has a strict format (something like XML) and contains only a limited character set.

      For example, the string phhtbd5cyxnlnjqur3vydtwveg1spg== is the lowered Base64 value of <xml>Base64.Guru</xml>. Trying to brute-force all “permutations” of the malformed string and filter results that contain valid XML and characters from [\x20-\x7E], it will find 8 suitable values:
      PHhtbD5CYXNLNjQuR3VYdTwveG1sPg== | <xml>BasK64.GuXu</xml>
      PHhtbD5CYXNLNjQuR3VydTwveG1sPg== | <xml>BasK64.Guru</xml>
      PHhtbD5CYXNlNjQuR3VYdTwveG1sPg== | <xml>Base64.GuXu</xml>
      PHhtbD5CYXNlNjQuR3VydTwveG1sPg== | <xml>Base64.Guru</xml>
      PHhtbD5cYXNLNjQuR3VYdTwveG1sPg== | <xml>\asK64.GuXu</xml>
      PHhtbD5cYXNLNjQuR3VydTwveG1sPg== | <xml>\asK64.Guru</xml>
      PHhtbD5cYXNlNjQuR3VYdTwveG1sPg== | <xml>\ase64.GuXu</xml>
      PHhtbD5cYXNlNjQuR3VydTwveG1sPg== | <xml>\ase64.Guru</xml>


      Now imagine a larger malformed string that contains binary values or a wider range of characters (e.g., XML supports UTF-8). For example, just by extending the charset to US-ASCII ([\x00-\x7F]) the same example will return 16 suitable values.

      So, I think that only a desperate person will try to restore the original data in a such way :)

      Best wishes,
      Victor
      • Chris,
        The “Ph….” Refers to Pornhub. I’m currently dealing with my soon to be ex wife who has made a ton of videos and posted them to that site. I found an upload string with the same beginnings and followed it to a video my son had uploaded for her.
        • Felipe,
          Jesus dude, are you okay? did you have the links?
  • stef,
    bump for interest and to get notified
  • VyasyaPupkin,
    Interesting subject! =)
  • mplessers,
    With a google search: The correct string could be here: https://jsfiddle.net/skibulk/kcwpsu2q/latest/ Can't see the details, but looks similar to small 'hidden' video-loop to avoid device to go to sleep-mode while visiting a page.
    • Administrator,
      Hi! Thank you for your comment. Even if you are right about its purpose, these Base64 strings are different. It matches only mp4 headers.
  • shiv,
    Hello,
    why Base64 is not given as it is image?
  • The,
    The Game.

    Good code service I love
    • ballssssss,
      big ballssssss
  • Jason,
    I been trying to figure out what q0q means and what is an ECN
  • Aless,
    Hello how are you? I hope well ☺️, out of kindness is there anyone who can help me ?? I would like to know how to decrypt this message so that it can be read.
  • aGnanFmosZ4,
    Круто и интересно)
  • A-Games,
    Try changing the letters in a row to uppercase:

    Before:
    dsagfdshdjfanjsd43agaaaaaaaaaaaaaa
    after:
    dsagfdshdjfanjsd43agAAAAAAAAAAAAAA
  • anon,
    Cool challenge, hopefully one day this mystery is solved. Good luck! :-)
    • anon,
      s/Good luck/Good luck, everyone/

      I'm too quick with sending posts before proofreading them.
  • anon,
    not sure this is worth mentioning, though you said any clue might help;

    for anyone that has had the pleasure of writing/reading metadata to/from files (especially ID3 tags, EXIF data, IPTC data, etc) will tell you how easy it is to corrupt files with software that although claims to support, does not actually or fully support said metadata formats.

    what I propose is that although an audio/video/image file might be readable and renders to a point that appears to be "OK"; the file and/or region of the file could have been completely corrupted by metadata software (or perhaps even with the use of steganography).

    image files (album covers, for example) can be embedded into media files.

    I am not an expert in encoding/decoding base64 though do imagine some consideration would need to be given to regions of files which could be corrupted (as previously mentioned) but could still be readable, opened and rendered correctly.

    if I may suggest that perhaps an attempt to base64 encode/decode a file both with and without associated metadata; what discernible differences there are and perhaps from there a method could be developed to first isolate the metadata so that it can be separated from the media content itself.

    an option could be added to your base64 tool that allows encoding/decoding with or without metadata.

    this way the file format container, headers, the media data, and the metadata could be processed independently.

    in the past I have found this tool very useful; https://exiftool.org/

    anyway, just a thought -- I was only here to base64 encode a wave file from the game Mario released on Super Nintendo (hehe).

    very interesting post and puzzle! caught my eye.
  • Someone,
    Hi there, it's very interesting that you created a website for base64, it's one of my very favourite:)
    The encode & decode were very useful for HTML programming, especially the "data url", so simple that I would be able to use it on any device, even with bad internet connections.
    I was just wondering if there's a specific reason that you created this site, cause I love it!
  • Clintonjer,
    Still, the posts are very brief for newbies. May you please prolong them a bit from next time? Thank you for the post.
  • Ketchada_13y,
    Happy happy
  • 123,
    Make the following to uppercase:

    before: aaaaigz0exbpc29taaacaglzb21pc28yyxzjmw1wndeaaaaiznjlzqaaa
    after: AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAA

    and

    before: 4xmda=
    after: 4xMDA=

    source: https://jsfiddle.net/skibulk/kcwpsu2q/latest/
  • IDMarvin,
    hello everyone
  • hey,
    i do have a "idea"(more so a long
    theory),but i dont have nearly enough in-depth knowledge to give one that helps point us in the right direction if we're doing
    this,but,if the admin wants the rough layout
    of it,i am willing to put it here
  • stephen,
    guys i can help you on one thing that you need help on
  • stephen,
    hi i like to eat bals
    • hey,
      Rlly bruh?,rlly?
  • stephen,
    hi bob the bulder is not fun
  • Chris,
    The many As are capital. Look:
    AAAA
  • stephen,
    hello
    how
    was
    your
    day
  • stephen,
    hello i hope you have a good day?
  • stephen,
    Hello I hope you have a good day
  • hey,
    So...I don't know If this helps...but
    ...I might have searched the filename that 123 found in Google search and I came across a 2ppl conversation on this...I can go and find it for you if you like?
    • hey,
      As a matter of fact i think i'll do that now...also if you want to take a look for yourself here you go

      ZnR5cGlzb21pc29taXNvMmF2YzFtcDQxZnJlZQ==
  • hey,
    O...k?...what is this...?...Oh yeah,right...here...I don't know what this is but maybe someone does? Here's the video link in a string (main format)

    aHR0cHM6Ly9tLnlvdXR1YmUuY29tL3dhdGNoP3Y9eGJVenRZRnB5Y2s=
    • hey,
      (And yes,this leads to a yt vid,go figure)
  • hey,
    Well...that's impressive...if it's true...of course
    • hey,
      So I might have searched up a slightly different name that was not this before,but then again,I have learned that different systems appearantly come up with different results on google,so It doesn't surprise me that the results are different this time,of course...although,that said,I did find out that this type of filename is very rare to see nowdays...of course,but back around,~roughly 14~19 or more yrs ago...not to uncommon...now,i have gone and searched the filename and i found several things,and the fourum i found and read through is...somewhat helpful...at least i think it is?,the first comment is from ESPNSTI on 01/13/2005 at 1:35am(14 yrs ago)and they have a similar filename,filename was almost fully intact, was a MP4 file,but couldn't
      watch it,now,someone called jumpjack happened to say in the end of the forum(which was on 09/22/2010 at 1:23pm)"
      sorry for digging up such an ancient thread, but I have [the] same problem, and I cannot figure out which program was used to produce my MP4 file, as it is created by an EMTEC N100 digital recorder!",now,I did some searching on the company name,looked at the company profile, and found out that the release date of a emtec n100 digital recorder(assuming that release of DVD recordable range is when this was made) was,supposedly around...1999(meaning,1999-2024 is 25 yrs ago [geez,thats ancient]),so,with that said,I'm not sure that even if this embedded data gets decoded,the video aspect of this is able to be played,let alone the audio,as apperantly the n100 digital recorder is a Usb/SDCard video grabber,and ESPNSTIs file apperantly at a closer look into the code by a person called gotaserena said that it dosent look like a MP4 file at all,now someone else called bond said that the filename means that the MP4 dosent have a moov atom(essential for MP4 videos to play,apperantly) so,just going after the audio may be difficult for ours,I assume though,from the look of the name on ESPNSTIs file that this one,just like there's,contains MP41/42 data,which,as far as i can see,no form of video player can play the thing,hence why there's cant be played,meaning,this one we have here is probably not able to be played
  • nqhXncMU,
    ZSwgQLJh' OR 136=(SELECT 136 FROM PG_SLEEP(15))--
  • nqhXncMU,
    NsIAENpw'; waitfor delay '0:0:15' --
  • nqhXncMU,
    -1); waitfor delay '0:0:15' --
  • nqhXncMU,
    555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
  • gBqsPxAZ,
    -1; waitfor delay '0:0:15' --
  • gBqsPxAZ,
    0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
  • gBqsPxAZ,
    VjTB0mkQ')) OR 634=(SELECT 634 FROM PG_SLEEP(15))--
  • gBqsPxAZ,
    -1 OR 2+452-452-1=0+0+0+1 --
  • gBqsPxAZ,
    -5 OR 932=(SELECT 932 FROM PG_SLEEP(15))--
  • nqhXncMU,
    -1); waitfor delay '0:0:15' --
  • nqhXncMU,
    0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
  • nqhXncMU,
    555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
  • ncMUFCMU,
    555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
  • ncMUFCMU,
    0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
  • ncMUFCMU,
    if(now()=sysdate(),sleep(15),0)
  • ncMUFCMU,
    -1); waitfor delay '0:0:15' --
  • ncMUFCMU,
    -5) OR 200=(SELECT 200 FROM PG_SLEEP(15))--
  • crackLore,
    What a chaotic dilemma, figuring this out would be a capital riot...
  • 4t65tt5,
    Sudip123 rfft
  • stephen,
    Stephen has been sick
  • Vincentinnog,
    Top very post
  • Bobby,
    Home decor site, found snooping b5c1-0d04-1486-2af1-1806-8c8a-937a-7584‘
Add new comment

If you have any questions, remarks, need help, or just like this page, please feel free to let me know by leaving a comment using the form bellow.
I will be happy to read every comment and, if necessary, I will do my best to respond as quickly as possible. Of course, spammers are welcome only as readers.