Home >Common Problem >What is base64 encoding

What is base64 encoding

coldplay.xixi
coldplay.xixiOriginal
2021-03-24 11:11:123017browse

Base64 encoding is one of the most common encoding methods for transmitting 8Bit bytecode on the Internet. Base64 is a method of representing binary data based on 64 printable characters. You can view [RFC2045~RFC2049], which contains detailed specifications of MIME.

What is base64 encoding

#The operating environment of this article: Windows 7 system, Dell G3 computer.

Base64 encoding is the process from binary to characters, which can be used to transfer longer identification information in an HTTP environment. Base64 encoding is unreadable and needs to be decoded before it can be read.

Base64 Due to the above advantages, it is widely used in various fields of computers. However, since the output content includes more than two "symbol class" characters (, /, =), different application scenarios Various "variants" of Base64 have been developed separately. To unify and normalize the output of Base64, Base62x is considered an improved version of unsigned.

Standard Base64 is not suitable for transmission directly in the URL, because the URL encoder will change the "/" and " " characters in standard Base64 into the form of "%XX", and these " The "%" sign needs to be converted when it is stored in the database, because the "%" sign has been used as a wildcard character in ANSI SQL.

To solve this problem, an improved Base64 encoding for URLs can be used, which fills the '=' sign at the end and changes the " " and "/" in standard Base64 to "-" respectively. " and "_", this eliminates the need for conversion during URL encoding, decoding and database storage, avoids the increase in the length of encoded information in the process, and unifies the format of object identifiers in databases, forms, etc.

There is also an improved Base64 variant for regular expressions, which changes " " and "/" to "!" and "-", because " ", "*" and the preceding ones are in IRCu The "[" and "]" used in regular expressions may have special meanings.

There are also some variants that change "/" to "_-" or "._" (used as an identifier name in programming languages) or ".-" (used in XML Nmtoken) or even "_:" (for Name in XML).

Base64 requires converting every three 8Bit bytes into four 6Bit bytes (3*8 = 4*6 = 24), and then adding two high-bit 0s to the 6Bit to form four 8Bit bytes, that is to say, the converted string will theoretically be 1/3 longer than the original one.

Rules

Rules about this encoding:

①. Convert 3 bytes into 4 bytes.

②Add a newline character every 76 characters.

③. The final terminator must also be processed.

Example

Before conversion 11111111, 11111111, 11111111 (binary)

After conversion 00111111, 00111111, 00111111, 00111111 (binary)

The upper three bytes are the original text, and the lower four bytes are the converted Base64 encoding, with the first two bits being 0.

After conversion, we use a code table to get the string we want (that is, the final Base64 encoding). This table is like this: (Excerpted from RFC2045)

Related video recommendations: PHP programming from entry to proficiency

The above is the detailed content of What is base64 encoding. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn