
Or look at the code: 1 #!usr/bin/env pythonĨ # after base64 encoding 8/6 = 1 remainder 2, so at least 2 byte bits are needed, in order to meet the divisible by 4, you need to add two = signsġ2 # Process the encoded result by removing the '=' signġ4 # decode the result, the previous has calculated the need for 2 = sign, directly add it is goodġ5 d = base64.b64decode(c.encode('utf-8') + b'=' * 2) After Base64 decoding, the length of bytes is at least 4 and a multiple of 4, and the insufficient parts are filled with ‘=’Ĭonfused?In fact, my expression is not good, and I don’t want to draw. Moreover, these four bytes can be regarded as a whole. Because each byte after segmentation has only 6 bits, the less than two bits are filled with 0. In an equation, 3×8 = 4×6, that is, those who used to be able to store 3 bytes can now store 4 bytes, but the original bit is divided, and each byte is represented by 6 bits. For example, the following code: 1 #!usr/bin/env pythonĪs for how to calculate, we need to understand the principle of Base64.

If you figure out the number of = signs, it’s OK to add them directly.

And missing_ Padding calculates the number of equal signs.

In fact, the equal sign is added after it. The solution is as follows: 1 #!usr/bin/env python Print(b) #binascii.Error: Incorrect padding For example, the following code is wrong #!usr/bin/env python If the encoding result is incomplete, for example, if the value of the given bytes object in the above code is b’agvsbg8 ‘, an exception prompt of typeerror: incorrect padding will appear.

The coding result of the above code is complete, so there is no problem in decoding it directly. In fact, the normal use of Base64 is not a problem, such as the following code 1 #!usr/bin/env pythonġ0 # base64 decoding of b, that is, the decoding of a encoded content However, there is a type error: incorrect padding error in the process. Today, when solving the crawler’s analysis of encryption parameters, we need to use Base64 decoding.
