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

Base64 Characters

The Base64 Alphabet contains 64 basic ASCII characters which are used to encode data. Yeah, that’s right, 64 characters is enough to encode any data of any length. The only drawback is that the size of the result will increase to 33%. However, its benefits are much more important, at least because all these symbols are available in 7-bit and 8-bit character sets.

Characters of the Base64 alphabet can be grouped into four groups:

  • Uppercase letters (indices 0-25): ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • Lowercase letters (indices 26-51): abcdefghijklmnopqrstuvwxyz
  • Digits (indices 52-61): 0123456789
  • Special symbols (indices 62-63): +/

It is very important to note that the Base64 letters are case sensitive. This means that, for example, when decoding the values “QQ==”, “Qq==”, “qq==”, and “qQ==” four different results are obtained.

For a better understanding, I grouped all characters into the Base64 table:

Uppercase Letters
IndexCharacter
0A
1B
2C
3D
4E
5F
6G
7H
8I
9J
10K
11L
12M
13N
14O
15P
16Q
17R
18S
19T
20U
21V
22W
23X
24Y
25Z
Lowercase Letters
IndexCharacter
26a
27b
28c
29d
30e
31f
32g
33h
34i
35j
36k
37l
38m
39n
40o
41p
42q
43r
44s
45t
46u
47v
48w
49x
50y
51z
Digits
IndexCharacter
520
531
542
553
564
575
586
597
608
619
Symbols
IndexCharacter
62+
63/

In addition to these characters, the equal sign (=) is used for padding. That is, the equal sign does not own an index and is not involved in the encoding of data. By and large, the padding character ensures that the length of Base64 value is a multiple of 4 bytes and it is always appended at the end of the output. Nevertheless, the heart of the algorithm contains only 64 characters, and for each of them there is a unique index. Only indices determine which characters will be used to encode the data, and only thanks to them you can “recover” the original data. All indices are listed in the Base64 table above.

Given all of the above, a Base64 value can be defined using the following regular expression:

^[A-Za-z0-9+/]+={0,2}$

However, some standards allow and even require the use of multi-line values. In such cases, we need to supplement the list of characters, by allowing “Line Feed” and “Carriage Return”.

^[A-Za-z0-9+/\r\n]+={0,2}$
Comments (49)

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

  • Brice,
    Hey thanks for your dedication to the subject and for making this helpful site. Where I currently am, Wikipedia is filtered and I needed to lookup the 'alphabet' since I didn't know it by heart. I learned a few things too while I was reading.

    Btw, I can't put a space in the Name field of this comment form. I was going to leave my first and last name but validation doesn't allow space.
    • Administrator,
      Hello dear Brice,
      Thank you for your comment. I’m glad you found this site useful.

      I apologize for the inconvenience with the “name” field. At the moment, I can’t fix it because it may break some related things, but I’ll look into it as soon as possible.

      By the way, if you want to remember the Base64 Characters you need just to remember the order of these four groups: Uppercase, Lowercase, Digits, and Symbols. That is, remembering this you can easily compute the Base64 alphabet since all indices, as well as Base64 characters, go in strict order.

      If you are looking for furthermore reading, I recommend you to read What is Base64? as well as explanation of Encode Algorithm and Decode Algorithm.
      • abc,
        you have done a great job.
        • 123,
          ahah thanks
  • Omar,
    Just wanted to say thanks for putting together this website and all the useful info it contains.

    Keep it up :)
  • James,
    Hello,

    Could you please, specify, how "the size of the result will increase to 33%" when in the introductory article you wrote that with the Base64 encoding source (binary) code would reduce by size not increase?
    • Administrator,
      Hello dear James,
      I deeply apologize for any misleading information.

      If I understand you correctly, by “introductory article” do you mean What is Base64? If so, please note that there I compared the Base64 length with binary numeral system (where each byte is represented as 8 binary digits).

      Anyway, for example, if you encode the string “ABC” (Length = 3) to Base64, the result is “QUJD” (Length = 4). That is, the result is approximately 33% (more exactly, 4/3) larger than the original data.
  • Betty,
    Hi there!

    1. You have a wonderful, comprehensive tool here. Thank you for providing it!

    2. I hope I can get your help with a code a friend sent me. I have been working on this for weeks and keep coming up short.

    The code is:
    Wm0hWW0uWW0hWW0uWW4iWW4uWW0hWW0hWW0hWm4uWW4iWW4uWm0hWW0uWW0hWW4uWWohWW4uWWohWW0=

    I figured it was in base64 due to the = sign. I was told there were three steps to this code.
    Can you make any sense of this?

    Thank you for whatever guidance you may provide!
    • SingingLakitu,
      Have you figured out the code? :) If it helps, I put that through `base64.b64decode` in Python and I got:

      `Zm!Ym.Ym!Ym.Yn"Yn.Ym!Ym!Ym!Zn.Yn"Yn.Zm!Ym.Ym!Yn.Yj!Yn.Yj!Ym`

      To respect your privacy, I did not proceed further :)
      However, I wonder if each group of 3 characters represents some sort of base-3 number...
  • ShkiperDesna,
    Hello! I often used base64 and I noticed that some files end with = and some end with ==. In the Internet I found = points "fill the ending of the last byte by zero-bits", but when should I use == I couldn't find information...
    • Administrator,
      Hi! By and large, the padding character ensures that the length of the Base64 string is a multiple of four. So, if the output string is too small, it appends a padding character until the length is divisible by 4.

      Some examples:
      - A is encoded to QQ== and there are appended two padding characters because neither QQ (2 chars) nor QQ= (3 chars) is divisible by 4.

      - AB is encoded to QUI= and there is appended only one padding character because QUI (3 chars) is not divisible by 4.

      - ABC is encoded to QUJD and there is no need to add a padding character because Base64 string is 4 characters long (that is, it's divisible by 4).

      - ABCD is encoded to QUJDRA== and there are appended two padding characters because QUJDRA (6 chars) nor QUJDRA= (7 chars) is divisible by 4.

      - ABCDE is encoded to QUJDREU= and there is appended only one padding character because QUJDREU= (7 chars) is not divisible by 4.

      - ABCDEF is encoded to QUJDREVG and there is no need to add a padding character because Base64 string is 8 characters long (that is, it's divisible by 4).
      • ShkiperDesna,
        Thank you very very much! Maybe, I would never find it if not you. Good luck)
  • Med,
    Hi, I have more than one string base64, every string means a PDF document with one page and I want to make those strings to one PDF document with PAGES, I search all the internet I didn't find a thing about it.
  • Azhar_Desai,
    Can a Base64 encoded string start with plus(+) or slash(/) character?
    • Administrator,
      Yes, Base64 strings can start with any of these characters. For example, JPEG images always start with /9j/.
  • Sarvy,
    Can a Base64 encoded string contain white spaces in between?
    • Administrator,
      No, it should not contain any whitespaces. However, most often you can decode such strings because many decoding functions simply ignore whitespaces. Please use the Base64 Validator to run some tests and find out some tips.
  • Natan,
    I need to encode a string to base 64 using the Bcrypt custom alphabet (that alphabet uses "." instead of "+" and begin with ".\"). How can I do this? There are some reference about how to encoding base 64 with an specific alphabet?

    My system specification shows the Bcrypt custom alphabet like this: ./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
    • Administrator,
      Hi! It depends on what programming language you are using. Some of them have a built-in function for this, while for others you have to replace characters by yourself. Check out the following example Base64URL in PHP, where it replaces +/ with -_.
  • centrix,
    Hey, we got an update in form of a weird base64 string! As a hint, I think, there was a picture of scissors and a 10 - i tried decoding the base64, but I just can't manage to get to anything that makes sense, would anybody have a clue what would be to be done? The past riddle was to format hex to binary, and then to text, but this one is impossible, I think. The string is:


    V2pBalhOU2dXam1qV3RTZ1dqSTJYdFNnV2pTaldOU2dXakUyV0RTZ1dqbWpXdFNnV2pJMld0U2dXaklqV3RTZ1dqbWpYalNnV2pJaldqU2dXalNqV05TZ1dqSTJXdFNnV2pJald0U2dXakkyWHRTZ1dqU2pXTlNnV2pJald0U2dXakkyWHRTZ1dqSTJXdFNnV2pJMlhEU2dXaklqWURTZ1dqUzJXalNnV2pTaldOU2dXaldqV0RTZ1dqU2pXTlNnV2pJalhqU2dXakkyWHRTZ1dqSTJYdFNnV2ptalhEU2dXalNqV05TZ1dqSWpYTlNnV2ptaldqU2dXam1qWHRTZ1dqbWpYdFNnV2pTaldOU2dXam1qV2pTZ1dqSWpYTlNnV2pTalhqU2dXaklqV2pTZ1dqU2pXTlNnV2pJald0U2dXakkyWHRTZ1dqbWpYdFNnV2pJMlh0U2dXakkyV3RTZ1dqSWpXalNnV2pJMlh0U2dXalMyV2pTZ1dqU2pXTlNnV2pFald0U2dXakVqWURTZ1dqRWpYdFNnV2pBMlhEU2dXalNqV0RTZ1dqU2pXTlNnV2pFalhqU2dXam1qWURTZ1dqSWpXdFNnV2pJMlh0U2dXalNqV05TZ1dqSWpYTlNnV2ptald0U2dXam1qV2pTZ1dqbWpZTlNnV2ptaldEU2dXaklqV2pTZ1dqU2pXTlNnV2pJMld0U2dXaklqV3RTZ1dqSTJYdFNnV2pTaldOU2dXakkyWE5TZ1dqbWpZRFNnV2ptalhqU2dXam1qV2pTZ1dqbWpZTlNnV2ptaldEU2dXalMyV2pTZ1dqU2pXTlNnV2ptaldEU2dXakkyV3RTZ1dqbWpYalNnV2pJMlh0U2dXaklqV2pTZ1dqUzJXalNnV2pTaldOU2dXakkyV3RTZ1dqbWpZTlNnV2pJMlhEU2dXalNqV05TZ1dqbWpYalNnV2pJalhEU2dXakkyWE5TZ1dqbWpXdFNnV2pTaldOU2dXam1qWGpTZ1dqSWpYRFNnV2pJMlhOU2dXam1qV3RTZ1dqU2pXTlNnV2ptalhqU2dXam1qWURTZ1dqSWpXdFNnV2pJMlh0U2dXalNqV0E9PQ==
  • Yashar,
    Heya!
    Thanks for helping us all out!

    Can you please tell how do I extract relevant data of a base64 encoded image?

    Eg:
    Let's say I will always have a defined set of objects in my image (box, circle, triangle) on a white background. Can I create a code that will tell me which object (box etc) is present where in the image and is connected with which other object (let's say two objects are connected via line) - by reading the base64 encoded file?

    A code that can read and convert my image into a defined JSON template is what I want.
    Thanks.
    • Administrator,
      Hey! Sorry, but your question is not related to Base64.
  • Adrienne,
    My program decodes base64 strings with no problem, but recently came across a string with an extra "tail" on it. When everything up to the "." is decoded, it comes out gibberish, so I'd like to know if you know or can surmise how to use the "tail" code to accomplish a proper decode. Thank you! Adrienne

    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0XZzxWYmpj.06d1162
    • Adrienne,
      a little additional info; these strings should decode to a json string that starts {"title":"May 15, 2022","subtitle":, also each day the json data is different, but the tail has been the same, ".06d1162"
      Looking at the end of the base64 string I sent, the placement of the "=" would seem to indicate that there is some sort of shifting or shuffling going on.
    • Adrienne,
      I just realized I have the same data, encoded both ways, with and without the tail.

      This is the json string encoded with plain base64:

      eyJ0aXRsZSI6Ik1heSAxNSwgMjAyMiIsInN1YnRpdGxlIjoiIiwiZGVzY3JpcHRpb24iOiIiLCJjb3B5cmlnaHQiOiIiLCJhdXRob3IiOiJEZXJlayBCb3dtYW4iLCJwdWJsaXNoZXIiOiIiLCJhdXRob3JFbWFpbCI6IiIsImF1dGhvclVSTCI6IiIsImhlbHAiOiIiLCJwYXVzZU1lc3NhZ2UiOiIiLCJlbmRNZXNzYWdlIjoiIiwiYXR0cmlidXRpb25zIjoiIiwiaWQiOiJ3ZnBfMjAyMjA1MTVfMDQwMCIsImxvY2FsZSI6ImVuLVVTIiwicHV6emxlVHlwZSI6IkNST1NTV09SRCIsInNyY0pQWiI6dHJ1ZSwiaXNJbXBvcnRlZCI6dHJ1ZSwic3JjRmlsZU5hbWUiOiJ3ZnBfMjAyMjA1MTVfMDQwMC54bWwiLCJjcmVhdGlvblRpbWUiOjE2NTI0NDg1NDgyNjUsIm1vZGlmaWVkVGltZSI6MTY1MjQ0ODU0ODI2NSwicHVibGlzaFRpbWUiOjE2NTI1ODcyMDAwMDAsInB1Ymxpc2hUaW1lWm9uZSI6IlVUQyIsInJlcGxheSI6ZmFsc2UsIm11bHRpUGxheUVuYWJsZWQiOmZhbHNlLCJ2aWRlb1ByZXJvbGxBZHMiOmZhbHNlLCJkaXNwbGF5QWRzIjpmYWxzZSwiY29ycmVjdFdvcmRQb2ludHMiOjEwLCJsZXR0ZXJQZW5hbHR5IjotMSwiYm9udXNQb2ludHMiOjE1LCJ0YXJnZXRUaW1lIjoxNSwibGlua1BlbmFsdHkiOi01LCJjaGVja1BERiI6dHJ1ZSwiY2x1ZURpc3BsYXkiOiJ0ZXh0IiwibWVkaWFQcmV2aWV3RW5hYmxlZCI6ZmFsc2UsIm1lZGlhUHJldmlld0FuZFRleHRFbmFibGVkIjp0cnVlLCJjb2xvckZlZWRiYWNrRW5hYmxlZCI6ZmFsc2UsImFsbG93U2hhcmluZyI6ZmFsc2UsImhpZGVDbHVlQ29sdW1ucyI6ZmFsc2UsIndvcmRMZW5ndGhzRW5hYmxlZCI6ZmFsc2UsInNob3dTdGFydEJ1dHRvbiI6ZmFsc2UsImNhc2VTZW5zaXRpdmUiOmZhbHNlLCJkZWZhdWx0SGludHNFbmFibGVkIjpmYWxzZSwiaGludHNFbmFibGVkIjp0cnVlLCJyZXZlYWxFbmFibGVkIjp0cnVlLCJjaGVja0VuYWJsZWQiOnRydWUsImVycm9yQ2hlY2tNb2RlRW5hYmxlZCI6dHJ1ZSwic2hvd1JlYnVzIjpmYWxzZSwiYXJ0aWNsZUhpbnRzRW5hYmxlZCI6ZmFsc2UsImNvbnRlc3RNb2RlRW5hYmxlZCI6ZmFsc2UsImdhdGhlckVtYWlsIjpmYWxzZSwiZ2F0aGVyTW9iaWxlIjpmYWxzZSwiZ2F0aGVyTmFtZSI6ZmFsc2UsInVubGlua0dyaWRBbmRDbHVlcyI6ZmFsc2UsImhpZGVJblBpY2tlciI6ZmFsc2UsInciOjksImgiOjksImJveCI6W1siRyIsIlAiLCJTIiwiXHUwMDAwIiwiQSIsIkMiLCJIIiwiRSIsIkQiXSxbIlUiLCJBIiwiRSIsIlx1MDAwMCIsIlAiLCJMIiwiQSIsIk4iLCJFIl0sWyJFIiwiViIsIkEiLCJcdTAwMDAiLCJQIiwiQSIsIkkiLCJMIiwiUyJdLFsiUyIsIkEiLCJMIiwiRSIsIlMiLCJTIiwiTCIsIkkiLCJQIl0sWyJUIiwiUiIsIkUiLCJTIiwiXHUwMDAwIiwiUCIsIkEiLCJWIiwiRSJdLFsiUCIsIk8iLCJEIiwiQyIsIkEiLCJTIiwiVCIsIkUiLCJSIl0sWyJBIiwiVCIsIkIiLCJBIiwiWSIsIlx1MDAwMCIsIkEiLCJOIiwiQSJdLFsiUyIsIlQiLCJJIiwiUCIsIkUiLCJcdTAwMDAiLCJYIiwiRSIsIkQiXSxbIlMiLCJJIiwiRCIsIkUiLCJTIiwiXHUwMDAwIiwiSSIsIkQiLCJPIl1dLCJjbHVlTnVtcyI6W1sxLDEwLDExLDAsMTMsMTcsMTksMjMsMjRdLFsyLDAsMCwwLDE0LDAsMCwwLDBdLFszLDAsMCwwLDE1LDAsMCwwLDBdLFs0LDAsMCwxMiwwLDAsMCwwLDBdLFs1LDAsMCwwLDAsMTgsMCwwLDBdLFs2LDAsMCwwLDE2LDAsMCwwLDBdLFs3LDAsMCwwLDAsMCwyMCwwLDBdLFs4LDAsMCwwLDAsMCwyMSwwLDBdLFs5LDAsMCwwLDAsMCwyMiwwLDBdXSwicGxhY2VkV29yZHMiOlt7IndvcmQiOiJHVUVTVFBBU1MiLCJvcmlnaW5hbFRlcm0iOiJHVUVTVFBBU1MiLCJuQm94ZXMiOjksIngiOjAsInkiOjAsImFjcm9zc05vdERvd24iOnRydWUsImRpcmVjdGlvbiI6IkUiLCJjbHVlU2VjdGlvbiI6IkFjcm9zcyIsImNsdWVOdW0iOjEsImNsdWUiOnsiZGF0ZSI6MCwiY2x1ZSI6IldheSB0byB0cnkgb3V0IGEgbmV3IGd5bTogMiB3ZHMuIiwiZnVsbFNlbnRlbmNlTG93ZXJDYXNlIjoiIn0sIndvcmRMZW5zIjpbOV0sImludGVyc2VjdHMiOmZhbHNlfSx7IndvcmQiOiJQQVZBUk9UVEkiLCJvcmlnaW5hbFRlcm0iOiJQQVZBUk9UVEkiLCJuQm94ZXMiOjksIngiOjAsInkiOjEsImFjcm9zc05vdERvd24iOnRydWUsImRpcmVjdGlvbiI6IkUiLCJjbHVlU2VjdGlvbiI6IkFjcm9zcyIsImNsdWVOdW0iOjEwLCJjbHVlIjp7ImRhdGUiOjAsImNsdWUiOiJPbmUgb2YgYSB0cmlvIG9mIGZhbW91cyB0ZW5vcnMiLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOls5XSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IlNFQUxFREJJRCIsIm9yaWdpbmFsVGVybSI6IlNFQUxFREJJRCIsIm5Cb3hlcyI6OSwieCI6MCwieSI6MiwiYWNyb3NzTm90RG93biI6dHJ1ZSwiZGlyZWN0aW9uIjoiRSIsImNsdWVTZWN0aW9uIjoiQWNyb3NzIiwiY2x1ZU51bSI6MTEsImNsdWUiOnsiZGF0ZSI6MCwiY2x1ZSI6IkJsaW5kIGFjdGlvbiwgYXQgYW4gYXVjdGlvbjogMiB3ZHMuIiwiZnVsbFNlbnRlbmNlTG93ZXJDYXNlIjoiIn0sIndvcmRMZW5zIjpbOV0sImludGVyc2VjdHMiOmZhbHNlfSx7IndvcmQiOiJFU0NBUEUiLCJvcmlnaW5hbFRlcm0iOiJFU0NBUEUiLCJuQm94ZXMiOjYsIngiOjMsInkiOjMsImFjcm9zc05vdERvd24iOnRydWUsImRpcmVjdGlvbiI6IkUiLCJjbHVlU2VjdGlvbiI6IkFjcm9zcyIsImNsdWVOdW0iOjEyLCJjbHVlIjp7ImRhdGUiOjAsImNsdWUiOiJCcmVhayBvdXQiLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOls2XSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IkFQUFMiLCJvcmlnaW5hbFRlcm0iOiJBUFBTIiwibkJveGVzIjo0LCJ4IjowLCJ5Ijo0LCJhY3Jvc3NOb3REb3duIjp0cnVlLCJkaXJlY3Rpb24iOiJFIiwiY2x1ZVNlY3Rpb24iOiJBY3Jvc3MiLCJjbHVlTnVtIjoxMywiY2x1ZSI6eyJkYXRlIjowLCJjbHVlIjoiU25hcGNoYXQgYW5kIFRpa1RvaywgZm9yIHR3byIsImZ1bGxTZW50ZW5jZUxvd2VyQ2FzZSI6IiJ9LCJ3b3JkTGVucyI6WzRdLCJpbnRlcnNlY3RzIjpmYWxzZX0seyJ3b3JkIjoiQVlFUyIsIm9yaWdpbmFsVGVybSI6IkFZRVMiLCJuQm94ZXMiOjQsIngiOjUsInkiOjQsImFjcm9zc05vdERvd24iOnRydWUsImRpcmVjdGlvbiI6IkUiLCJjbHVlU2VjdGlvbiI6IkFjcm9zcyIsImNsdWVOdW0iOjE2LCJjbHVlIjp7ImRhdGUiOjAsImNsdWUiOiJWb3RlcyBmb3IiLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOls0XSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IkNMQVNQUyIsIm9yaWdpbmFsVGVybSI6IkNMQVNQUyIsIm5Cb3hlcyI6NiwieCI6MCwieSI6NSwiYWNyb3NzTm90RG93biI6dHJ1ZSwiZGlyZWN0aW9uIjoiRSIsImNsdWVTZWN0aW9uIjoiQWNyb3NzIiwiY2x1ZU51bSI6MTcsImNsdWUiOnsiZGF0ZSI6MCwiY2x1ZSI6IkhvbGRzIG9uIHRpZ2h0bHkgdG8iLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOls2XSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IkhBSUxBVEFYSSIsIm9yaWdpbmFsVGVybSI6IkhBSUxBVEFYSSIsIm5Cb3hlcyI6OSwieCI6MCwieSI6NiwiYWNyb3NzTm90RG93biI6dHJ1ZSwiZGlyZWN0aW9uIjoiRSIsImNsdWVTZWN0aW9uIjoiQWNyb3NzIiwiY2x1ZU51bSI6MTksImNsdWUiOnsiZGF0ZSI6MCwiY2x1ZSI6IlNpZ25hbCB0byBiZSBwaWNrZWQgdXA6IDMgd2RzLiIsImZ1bGxTZW50ZW5jZUxvd2VyQ2FzZSI6IiJ9LCJ3b3JkTGVucyI6WzldLCJpbnRlcnNlY3RzIjpmYWxzZX0seyJ3b3JkIjoiRU5MSVZFTkVEIiwib3JpZ2luYWxUZXJtIjoiRU5MSVZFTkVEIiwibkJveGVzIjo5LCJ4IjowLCJ5Ijo3LCJhY3Jvc3NOb3REb3duIjp0cnVlLCJkaXJlY3Rpb24iOiJFIiwiY2x1ZVNlY3Rpb24iOiJBY3Jvc3MiLCJjbHVlTnVtIjoyMywiY2x1ZSI6eyJkYXRlIjowLCJjbHVlIjoiU3BydWNlZCB1cCIsImZ1bGxTZW50ZW5jZUxvd2VyQ2FzZSI6IiJ9LCJ3b3JkTGVucyI6WzldLCJpbnRlcnNlY3RzIjpmYWxzZX0seyJ3b3JkIjoiREVTUEVSQURPIiwib3JpZ2luYWxUZXJtIjoiREVTUEVSQURPIiwibkJveGVzIjo5LCJ4IjowLCJ5Ijo4LCJhY3Jvc3NOb3REb3duIjp0cnVlLCJkaXJlY3Rpb24iOiJFIiwiY2x1ZVNlY3Rpb24iOiJBY3Jvc3MiLCJjbHVlTnVtIjoyNCwiY2x1ZSI6eyJkYXRlIjowLCJjbHVlIjoiR3Vuc2xpbmdpbmcgb3V0bGF3IiwiZnVsbFNlbnRlbmNlTG93ZXJDYXNlIjoiIn0sIndvcmRMZW5zIjpbOV0sImludGVyc2VjdHMiOmZhbHNlfSx7IndvcmQiOiJHUFMiLCJvcmlnaW5hbFRlcm0iOiJHUFMiLCJuQm94ZXMiOjMsIngiOjAsInkiOjAsImFjcm9zc05vdERvd24iOmZhbHNlLCJkaXJlY3Rpb24iOiJTIiwiY2x1ZVNlY3Rpb24iOiJEb3duIiwiY2x1ZU51bSI6MSwiY2x1ZSI6eyJkYXRlIjowLCJjbHVlIjoiTmF2aWdhdGlvbiBhaWQsIGZvciBzaG9ydCIsImZ1bGxTZW50ZW5jZUxvd2VyQ2FzZSI6IiJ9LCJ3b3JkTGVucyI6WzNdLCJpbnRlcnNlY3RzIjpmYWxzZX0seyJ3b3JkIjoiVUFFIiwib3JpZ2luYWxUZXJtIjoiVUFFIiwibkJveGVzIjozLCJ4IjoxLCJ5IjowLCJhY3Jvc3NOb3REb3duIjpmYWxzZSwiZGlyZWN0aW9uIjoiUyIsImNsdWVTZWN0aW9uIjoiRG93biIsImNsdWVOdW0iOjIsImNsdWUiOnsiZGF0ZSI6MCwiY2x1ZSI6IkR1YmFpIGxvY2FsZTogQWJici4iLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOlszXSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IkVWQSIsIm9yaWdpbmFsVGVybSI6IkVWQSIsIm5Cb3hlcyI6MywieCI6MiwieSI6MCwiYWNyb3NzTm90RG93biI6ZmFsc2UsImRpcmVjdGlvbiI6IlMiLCJjbHVlU2VjdGlvbiI6IkRvd24iLCJjbHVlTnVtIjozLCJjbHVlIjp7ImRhdGUiOjAsImNsdWUiOiJHYWJvciBvZiBcIkdyZWVuIEFjcmVzXCIiLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOlszXSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IlNBTEVTU0xJUCIsIm9yaWdpbmFsVGVybSI6IlNBTEVTU0xJUCIsIm5Cb3hlcyI6OSwieCI6MywieSI6MCwiYWNyb3NzTm90RG93biI6ZmFsc2UsImRpcmVjdGlvbiI6IlMiLCJjbHVlU2VjdGlvbiI6IkRvd24iLCJjbHVlTnVtIjo0LCJjbHVlIjp7ImRhdGUiOjAsImNsdWUiOiJSZWNlaXB0OiAyIHdkcy4iLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOls5XSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IlRSRVMiLCJvcmlnaW5hbFRlcm0iOiJUUkVTIiwibkJveGVzIjo0LCJ4Ijo0LCJ5IjowLCJhY3Jvc3NOb3REb3duIjpmYWxzZSwiZGlyZWN0aW9uIjoiUyIsImNsdWVTZWN0aW9uIjoiRG93biIsImNsdWVOdW0iOjUsImNsdWUiOnsiZGF0ZSI6MCwiY2x1ZSI6IlwiX19fIGJpZW4hXCIiLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOls0XSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IlBPRENBU1RFUiIsIm9yaWdpbmFsVGVybSI6IlBPRENBU1RFUiIsIm5Cb3hlcyI6OSwieCI6NSwieSI6MCwiYWNyb3NzTm90RG93biI6ZmFsc2UsImRpcmVjdGlvbiI6IlMiLCJjbHVlU2VjdGlvbiI6IkRvd24iLCJjbHVlTnVtIjo2LCJjbHVlIjp7ImRhdGUiOjAsImNsdWUiOiJJbnRlcm5ldCBwZXJzb25hbGl0eSB3aXRoIGEgbWljcm9waG9uZSIsImZ1bGxTZW50ZW5jZUxvd2VyQ2FzZSI6IiJ9LCJ3b3JkTGVucyI6WzldLCJpbnRlcnNlY3RzIjpmYWxzZX0seyJ3b3JkIjoiQVRCQVkiLCJvcmlnaW5hbFRlcm0iOiJBVEJBWSIsIm5Cb3hlcyI6NSwieCI6NiwieSI6MCwiYWNyb3NzTm90RG93biI6ZmFsc2UsImRpcmVjdGlvbiI6IlMiLCJjbHVlU2VjdGlvbiI6IkRvd24iLCJjbHVlTnVtIjo3LCJjbHVlIjp7ImRhdGUiOjAsImNsdWUiOiJVbmRlciBjb250cm9sLCBhcyBhIHdpbGQgYW5pbWFsOiAyIHdkcy4iLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOls1XSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IlNUSVBFIiwib3JpZ2luYWxUZXJtIjoiU1RJUEUiLCJuQm94ZXMiOjUsIngiOjcsInkiOjAsImFjcm9zc05vdERvd24iOmZhbHNlLCJkaXJlY3Rpb24iOiJTIiwiY2x1ZVNlY3Rpb24iOiJEb3duIiwiY2x1ZU51bSI6OCwiY2x1ZSI6eyJkYXRlIjowLCJjbHVlIjoiUi5FLk0uIHNpbmdlciBNaWNoYWVsIiwiZnVsbFNlbnRlbmNlTG93ZXJDYXNlIjoiIn0sIndvcmRMZW5zIjpbNV0sImludGVyc2VjdHMiOmZhbHNlfSx7IndvcmQiOiJTSURFUyIsIm9yaWdpbmFsVGVybSI6IlNJREVTIiwibkJveGVzIjo1LCJ4Ijo4LCJ5IjowLCJhY3Jvc3NOb3REb3duIjpmYWxzZSwiZGlyZWN0aW9uIjoiUyIsImNsdWVTZWN0aW9uIjoiRG93biIsImNsdWVOdW0iOjksImNsdWUiOnsiZGF0ZSI6MCwiY2x1ZSI6IkRlYmF0ZSBwb3NpdGlvbnMiLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOls1XSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IkFDSEVEIiwib3JpZ2luYWxUZXJtIjoiQUNIRUQiLCJuQm94ZXMiOjUsIngiOjAsInkiOjQsImFjcm9zc05vdERvd24iOmZhbHNlLCJkaXJlY3Rpb24iOiJTIiwiY2x1ZVNlY3Rpb24iOiJEb3duIiwiY2x1ZU51bSI6MTMsImNsdWUiOnsiZGF0ZSI6MCwiY2x1ZSI6Ik5lZWRlZCBhIG1hc3NhZ2UsIG1heWJlIiwiZnVsbFNlbnRlbmNlTG93ZXJDYXNlIjoiIn0sIndvcmRMZW5zIjpbNV0sImludGVyc2VjdHMiOmZhbHNlfSx7IndvcmQiOiJQTEFORSIsIm9yaWdpbmFsVGVybSI6IlBMQU5FIiwibkJveGVzIjo1LCJ4IjoxLCJ5Ijo0LCJhY3Jvc3NOb3REb3duIjpmYWxzZSwiZGlyZWN0aW9uIjoiUyIsImNsdWVTZWN0aW9uIjoiRG93biIsImNsdWVOdW0iOjE0LCJjbHVlIjp7ImRhdGUiOjAsImNsdWUiOiJJdFx1MDAyN3MgdXAgaW4gdGhlIGFpciIsImZ1bGxTZW50ZW5jZUxvd2VyQ2FzZSI6IiJ9LCJ3b3JkTGVucyI6WzVdLCJpbnRlcnNlY3RzIjpmYWxzZX0seyJ3b3JkIjoiUEFJTFMiLCJvcmlnaW5hbFRlcm0iOiJQQUlMUyIsIm5Cb3hlcyI6NSwieCI6MiwieSI6NCwiYWNyb3NzTm90RG93biI6ZmFsc2UsImRpcmVjdGlvbiI6IlMiLCJjbHVlU2VjdGlvbiI6IkRvd24iLCJjbHVlTnVtIjoxNSwiY2x1ZSI6eyJkYXRlIjowLCJjbHVlIjoiQmVhY2ggcGxheXRoaW5ncyIsImZ1bGxTZW50ZW5jZUxvd2VyQ2FzZSI6IiJ9LCJ3b3JkTGVucyI6WzVdLCJpbnRlcnNlY3RzIjpmYWxzZX0seyJ3b3JkIjoiUEFWRSIsIm9yaWdpbmFsVGVybSI6IlBBVkUiLCJuQm94ZXMiOjQsIngiOjQsInkiOjUsImFjcm9zc05vdERvd24iOmZhbHNlLCJkaXJlY3Rpb24iOiJTIiwiY2x1ZVNlY3Rpb24iOiJEb3duIiwiY2x1ZU51bSI6MTgsImNsdWUiOnsiZGF0ZSI6MCwiY2x1ZSI6IkRvIHNvbWUgcm9hZHdvcmsiLCJmdWxsU2VudGVuY2VMb3dlckNhc2UiOiIifSwid29yZExlbnMiOls0XSwiaW50ZXJzZWN0cyI6ZmFsc2V9LHsid29yZCI6IkFOQSIsIm9yaWdpbmFsVGVybSI6IkFOQSIsIm5Cb3hlcyI6MywieCI6NiwieSI6NiwiYWNyb3NzTm90RG93biI6ZmFsc2UsImRpcmVjdGlvbiI6IlMiLCJjbHVlU2VjdGlvbiI6IkRvd24iLCJjbHVlTnVtIjoyMCwiY2x1ZSI6eyJkYXRlIjowLCJjbHVlIjoiU2VyYmlhbiBQTSBfX18gQnJuYWJpYyIsImZ1bGxTZW50ZW5jZUxvd2VyQ2FzZSI6IiJ9LCJ3b3JkTGVucyI6WzNdLCJpbnRlcnNlY3RzIjpmYWxzZX0seyJ3b3JkIjoiWEVEIiwib3JpZ2luYWxUZXJtIjoiWEVEIiwibkJveGVzIjozLCJ4Ijo3LCJ5Ijo2LCJhY3Jvc3NOb3REb3duIjpmYWxzZSwiZGlyZWN0aW9uIjoiUyIsImNsdWVTZWN0aW9uIjoiRG93biIsImNsdWVOdW0iOjIxLCJjbHVlIjp7ImRhdGUiOjAsImNsdWUiOiJDcm9zc2VkIChvdXQpIiwiZnVsbFNlbnRlbmNlTG93ZXJDYXNlIjoiIn0sIndvcmRMZW5zIjpbM10sImludGVyc2VjdHMiOmZhbHNlfSx7IndvcmQiOiJJRE8iLCJvcmlnaW5hbFRlcm0iOiJJRE8iLCJuQm94ZXMiOjMsIngiOjgsInkiOjYsImFjcm9zc05vdERvd24iOmZhbHNlLCJkaXJlY3Rpb24iOiJTIiwiY2x1ZVNlY3Rpb24iOiJEb3duIiwiY2x1ZU51bSI6MjIsImNsdWUiOnsiZGF0ZSI6MCwiY2x1ZSI6IlwiV2hvIHdhbnRzIGljZSBjcmVhbT9cIiBhbnN3ZXI6IDIgd2RzLiIsImZ1bGxTZW50ZW5jZUxvd2VyQ2FzZSI6IiJ9LCJ3b3JkTGVucyI6WzNdLCJpbnRlcnNlY3RzIjpmYWxzZX1dLCJib3hUb1BsYWNlZFdvcmRzSWR4cyI6W1tbMCwxMF0sWzEsMTBdLFsyLDEwXSxudWxsLFs0LDE5XSxbNiwxOV0sWzcsMTldLFs4LDE5XSxbOSwxOV1dLFtbMTEsMF0sWzEsMTFdLFsyLDExXSxudWxsLFsyMCw0XSxbNiwyMF0sWzcsMjBdLFs4LDIwXSxbOSwyMF1dLFtbMTIsMF0sWzEsMTJdLFsyLDEyXSxudWxsLFsyMSw0XSxbNiwyMV0sWzcsMjFdLFs4LDIxXSxbOSwyMV1dLFtbMTMsMF0sWzEsMTNdLFsyLDEzXSxbMywxM10sWzQsMTNdLFs2LDEzXSxbNywxM10sWzgsMTNdLFs5LDEzXV0sW1sxNCwwXSxbMSwxNF0sWzIsMTRdLFszLDE0XSxudWxsLFsyMiw2XSxbNywyMl0sWzgsMjJdLFs5LDIyXV0sW1sxNSwwXSxbMSwxNV0sWzIsMTVdLFszLDE1XSxbNSwxNV0sWzYsMTVdLFs3LDE1XSxbOCwxNV0sWzksMTVdXSxbWzE2LDBdLFsxLDE2XSxbMiwxNl0sWzMsMTZdLFs1LDE2XSxudWxsLFsyMyw3XSxbOCwyM10sWzksMjNdXSxbWzE3LDBdLFsxLDE3XSxbMiwxN10sWzMsMTddLFs1LDE3XSxudWxsLFsyNCw3XSxbOCwyNF0sWzksMjRdXSxbWzE4LDBdLFsxLDE4XSxbMiwxOF0sWzMsMThdLFs1LDE4XSxudWxsLFsyNSw3XSxbOCwyNV0sWzksMjVdXV0sInByZVJldmVhbElkeHMiOltbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSxbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXSxbZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2UsZmFsc2VdLFtmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZSxmYWxzZV0sW2ZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlLGZhbHNlXV0sInRhZ3MiOltdLCJsZXZlbCI6MCwibGV2ZWxzRXhoYXVzdGVkIjp0cnVlLCJoYXZlTWVzc2FnZXMiOnRydWUsInBsYWNlQWxsIjpmYWxzZX0=
    • Adrienne,
      and this is the same json string encoded with the tail:

      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0.06d1162

      and I can upload the plain text json string too if that helps.
    • Adrienne,
      looking at the 2 base64 strings, I realized it's being reversed in small chunks, first 4 chars,then 8,3,3,15,8,2, then the sequence repeats. Now all I have to figure out is how the 06d1162 string at the end translates into the 4-8-3-3-15-8-2 sequence, in case it changes.
      • DJWord,
        Thanks for the start. Assume it's a hex string, invert it (2611d60) and add 2 to each value (0x2+2=4, 0x6+2=8, 0x1+2=3, 0x1+2=3, 0xd(13)+2=15, 0x6+2=8, 0x0+2=2). Worked for the latest b8a308e - 16-10-2-5-12-10-13.
        • Adrienne,
          Yes, I did figure that out, and the formula has been working on different strings, and now I’m starting to see new codes and it’s still working. I didn’t post it since I didn’t know if the page was still monitored. Thank You.
        • Adrienne,
          Oh! just realized you posted the latest code lol so you know the source, very cool
        • Adrienne,
          feel free to email me if you are interested in receiving the puz files
        • Adrienne,
          So I'm curious if you are also "jpd236" author of Crossword Scraper.. I noticed it stopped working for WinnipegFreePress today, as did my crossword downloader, but I discovered the map-code is now encoded in another window.raw string, and no longer reversed.
  • OriginWormy,
    How does a forward slash appear in a Base64 string from plain text?
  • pritesh,
    What regular expression should i use for my string U2FsdGVkX1967SyD064v77zUKCtnEbB1wy2+8Bs5/sM=?
    I have tried both:

    1.                <xs:restriction base="xs:string">
                            <xs:maxLength value="100" />
                            <xs:pattern value="^[A-Za-z0-9+/]+={0,2}$" />
                      </xs:restriction>

    2.                <xs:restriction base="xs:string">
                            <xs:maxLength value="100" />
                            <xs:pattern value="^[A-Za-z0-9+/\r\n]+={0,2}$" />
                      </xs:restriction>

    But both are not able to validate the my base64 string.
    Please help
  • Tzvika,
    Hi there, thanks for this meaningful website!
    after reading your articles and answers and in other forms I understand that,
    base64 can not have whitespaces and the signs + and / can be used depending on the base64 implementation.
    So is it safe to assume that if I encounter a whitespace then it probably override a previous + or / signs ?

    Many thanks!
  • Talha,
    I have a couple of questions.

    1. Why does Base64 not start with 0? any particular reason?
    2. Why the special chars are "+" and "/" specifically? not any other chars.
  • bayu,
    What is the difference

    (base64) = h
    (base64) = q
    vLFfghR5tNV3K9DKhmwArV+SbjWAcgZZzIDTnJ0JgCo=h
    r6wt0ArZSmas0z/zuRK4syYcdBu/2pfLr02IE4OL90U=q


    Please help me
  • nqhXncMU,
    -1); waitfor delay '0:0:15' --
  • nqhXncMU,
    OSq8xMcW')) OR 643=(SELECT 643 FROM PG_SLEEP(15))--
  • nqhXncMU,
    0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
  • nqhXncMU,
    1
  • nqhXncMU,
    555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
  • gBqsPxAZ,
    -5 OR 680=(SELECT 680 FROM PG_SLEEP(15))--
  • nqhXncMU,
    -5) OR 157=(SELECT 157 FROM PG_SLEEP(15))--
  • nqhXncMU,
    -1)) OR 452=(SELECT 452 FROM PG_SLEEP(15))--
  • nqhXncMU,
    -5) OR 721=(SELECT 721 FROM PG_SLEEP(15))--
  • nqhXncMU,
    0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
  • ncMUFCMU,
    -1)) OR 692=(SELECT 692 FROM PG_SLEEP(15))--
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.