<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Base64</id>
	<title>Base64 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=Base64"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Base64&amp;action=history"/>
	<updated>2026-07-06T13:58:39Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=Base64&amp;diff=131416&amp;oldid=prev</id>
		<title>imported&gt;暁月凛奈：​回退~2025-44347-5（对话）的编辑，改回InternetArchiveBot的最后一个版本</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=Base64&amp;diff=131416&amp;oldid=prev"/>
		<updated>2025-08-23T15:08:31Z</updated>

		<summary type="html">&lt;p&gt;回退&lt;a href=&quot;/wiki/Special:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/~2025-44347-5&quot; title=&quot;Special:用户贡献/~2025-44347-5&quot;&gt;~2025-44347-5&lt;/a&gt;（&lt;a href=&quot;/index.php?title=User_talk:~2025-44347-5&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:~2025-44347-5（页面不存在）&quot;&gt;对话&lt;/a&gt;）的编辑，改回&lt;a href=&quot;/wiki/Special:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/InternetArchiveBot&quot; title=&quot;Special:用户贡献/InternetArchiveBot&quot;&gt;InternetArchiveBot&lt;/a&gt;的最后一个版本&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA&lt;br /&gt;
| G1 = IT&lt;br /&gt;
| 1 = zh-hans:字符; zh-hant:字元&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Base64&amp;#039;&amp;#039;&amp;#039;（基底64）是一种基于64个可打印字符来表示[[二进制|二进制数据]]的表示方法。由于{{計算結果|log(2,64)}}，所以每6个[[位元]]为一个单元，对应某个可打印字符。3个[[字节]]相當於24个位元，对应于4个Base64单元，即3个字节可由4个可打印字符来表示。在Base64中的可打印字符包括[[拉丁字母|字母]]&amp;lt;code&amp;gt;A-Z&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;a-z&amp;lt;/code&amp;gt;、[[数字]]&amp;lt;code&amp;gt;0-9&amp;lt;/code&amp;gt;，这样共有62个字符，此外两个可打印符号在不同的系统中而不同。一些如[[uuencode]]的其他编码方法，和之后{{Link-en|BinHex}}的版本使用不同的64字符集来代表6个二进制数字，但是不被稱為Base64。&lt;br /&gt;
&lt;br /&gt;
Base64常用于在通常处理文本[[数据]]的场合，表示、传输、存储一些二进制数据，包括[[MIME]]的[[电子邮件]]及[[XML]]的一些复杂数据。&lt;br /&gt;
&lt;br /&gt;
==RFC 4648 标准的 Base64 索引表==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 十进制 !! scope=&amp;quot;col&amp;quot; | 二进制 !! scope=&amp;quot;col&amp;quot; | 字符&lt;br /&gt;
| rowspan=&amp;quot;17&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 十进制 !! scope=&amp;quot;col&amp;quot; | 二进制 !! scope=&amp;quot;col&amp;quot; | 字符&lt;br /&gt;
| rowspan=&amp;quot;17&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 十进制 !! scope=&amp;quot;col&amp;quot; | 二进制 !! scope=&amp;quot;col&amp;quot; | 字符&lt;br /&gt;
| rowspan=&amp;quot;17&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | 十进制 !! scope=&amp;quot;col&amp;quot; | 二进制 !! scope=&amp;quot;col&amp;quot; | 字符&lt;br /&gt;
|-&lt;br /&gt;
|  0 || 000000 || A || 16 || 010000 || Q || 32 || 100000 || g || 48 || 110000 || w&lt;br /&gt;
|-&lt;br /&gt;
|  1 || 000001 || B || 17 || 010001 || R || 33 || 100001 || h || 49 || 110001 || x&lt;br /&gt;
|-&lt;br /&gt;
|  2 || 000010 || C || 18 || 010010 || S || 34 || 100010 || i || 50 || 110010 || y&lt;br /&gt;
|-&lt;br /&gt;
|  3 || 000011 || D || 19 || 010011 || T || 35 || 100011 || j || 51 || 110011 || z&lt;br /&gt;
|-&lt;br /&gt;
|  4 || 000100 || E || 20 || 010100 || U || 36 || 100100 || k || 52 || 110100 || 0&lt;br /&gt;
|-&lt;br /&gt;
|  5 || 000101 || F || 21 || 010101 || V || 37 || 100101 || l || 53 || 110101 || 1&lt;br /&gt;
|-&lt;br /&gt;
|  6 || 000110 || G || 22 || 010110 || W || 38 || 100110 || m || 54 || 110110 || 2&lt;br /&gt;
|-&lt;br /&gt;
|  7 || 000111 || H || 23 || 010111 || X || 39 || 100111 || n || 55 || 110111 || 3&lt;br /&gt;
|-&lt;br /&gt;
|  8 || 001000 || I || 24 || 011000 || Y || 40 || 101000 || o || 56 || 111000 || 4&lt;br /&gt;
|-&lt;br /&gt;
|  9 || 001001 || J || 25 || 011001 || Z || 41 || 101001 || p || 57 || 111001 || 5&lt;br /&gt;
|-&lt;br /&gt;
| 10 || 001010 || K || 26 || 011010 || a || 42 || 101010 || q || 58 || 111010 || 6&lt;br /&gt;
|-&lt;br /&gt;
| 11 || 001011 || L || 27 || 011011 || b || 43 || 101011 || r || 59 || 111011 || 7&lt;br /&gt;
|-&lt;br /&gt;
| 12 || 001100 || M || 28 || 011100 || c || 44 || 101100 || s || 60 || 111100 || 8&lt;br /&gt;
|-&lt;br /&gt;
| 13 || 001101 || N || 29 || 011101 || d || 45 || 101101 || t || 61 || 111101 || 9&lt;br /&gt;
|-&lt;br /&gt;
| 14 || 001110 || O || 30 || 011110 || e || 46 || 101110 || u || 62 || 111110 || +&lt;br /&gt;
|-&lt;br /&gt;
| 15 || 001111 || P || 31 || 011111 || f || 47 || 101111 || v || 63 || 111111 || /&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; | 填充 || =&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 示例 ==&lt;br /&gt;
舉例來說，一段引用自[[托马斯·霍布斯]]《[[利维坦 (霍布斯)|利维坦]]》的文句：&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
經過Base64編碼之後變成：&lt;br /&gt;
{{#tag:syntaxhighlight|{{base64|Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.}}}}&lt;br /&gt;
&lt;br /&gt;
编码「Man」的結果為&amp;lt;code&amp;gt;{{base64|Man}}&amp;lt;/code&amp;gt;，詳細原理如下：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  style=&amp;quot;font-famly:monospace;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 文本&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | ASCII编码&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | 77&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | 97&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | 110&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 二进制位&lt;br /&gt;
|0||1||0||0||1||1||0||1||0||1||1||0||0||0||0||1||0||1||1||0||1||1||1||0&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 索引&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | 19&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | 22&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | 5&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | 46&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Base64编码&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;W&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;u&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
在此例中，Base64算法将3个字节编码为4个字符。&lt;br /&gt;
&lt;br /&gt;
如果要编码的字节数不能被3整除，最后会多出1个或2个字节，那么可以使用下面的方法进行处理：先使用0字节值在末尾补足，使其能够被3整除，然后再进行Base64的编码。在编码后的Base64文本后加上一个或两个&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;号，代表补足的字节数。也就是说，当最后剩余两个八位(待补足)字节（2个byte）时，最后一个6位的Base64字节块有四位是0值，最后附加上两个等号；如果最后剩余一个八位(待补足)字节（1个byte）时，最后一个6位的base字节块有两位是0值，最后附加一个等号。&lt;br /&gt;
参考下表：&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-famly:monospace;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 文本（1 Byte）&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 二进制位&lt;br /&gt;
|0||1||0||0||0||0||0||1||0||0||0||0||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 二进制位（補0）&lt;br /&gt;
|0||1||0||0||0||0||0||1||&amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;|| colspan=&amp;quot;6&amp;quot;  style=&amp;quot;text-align:center&amp;quot;|留空填充|| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center&amp;quot; |留空填充&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Base64编码&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; |=&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; |=&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 文本（2 Byte）&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot; align=&amp;quot;center&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 二进制位&lt;br /&gt;
|0||1||0||0||0||0||1||0||0||1||0||0||0||0||1||1||0||0||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;||&amp;amp;numsp;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | 二进制位（補0）&lt;br /&gt;
|0||1||0||0||0||0||1||0||0||1||0||0||0||0||1||1||&amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;||&amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039;|| colspan=&amp;quot;6&amp;quot; style=&amp;quot;text-align:center;&amp;quot;|留空填充&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Base64编码&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;Q&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; | &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot; align=&amp;quot;center&amp;quot; |=&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 应用 ==&lt;br /&gt;
&lt;br /&gt;
===变种===&lt;br /&gt;
base64编码对应的64个可打印字符在一些特定的程序或协议中可能不适合使用，特别是字符表第62位（&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;）、63位（&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;）和填充字符（&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;），因此存在一些如下的变种：&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
! rowspan=2 | 编码&lt;br /&gt;
! colspan=3 | 编码字符&lt;br /&gt;
! colspan=3 | 换行的处理&lt;br /&gt;
! rowspan=2 | 是否解码非编码字符&lt;br /&gt;
|-&lt;br /&gt;
! 第62位&lt;br /&gt;
! 第63位&lt;br /&gt;
! 填充&lt;br /&gt;
! 分隔符&lt;br /&gt;
! 行字符数&lt;br /&gt;
! 校验和&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | {{nowrap|[https://datatracker.ietf.org/doc/html/rfc1421 RFC 1421]}}：用于隐私增强电邮的Base64（已弃用）&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || {{yes|{{code|{{=}}}} 强制}}&lt;br /&gt;
| {{yes|CR+LF}} || {{Yes|64，末尾行可少于64}} || {{No}} || {{No}}&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | {{nowrap|[https://datatracker.ietf.org/doc/html/rfc2045 RFC 2045]}}：用于[[#MIME|MIME]]的Base64&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || {{yes|{{code|{{=}}}} 强制}}&lt;br /&gt;
| {{yes|CR+LF}} || {{Yes|上限 76}} || {{No}} || {{partial|弃用}}&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | {{nowrap|[https://datatracker.ietf.org/doc/html/rfc2152 RFC 2152]}}: 用于[[#UTF-7|UTF-7]]的Base64&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || {{No}}&lt;br /&gt;
| colspan=3 {{No}} || {{No}}&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | {{nowrap|[https://datatracker.ietf.org/doc/html/rfc3501#section-5.1.3 RFC 3501]}}：用于[[IMAP]]协议邮箱命名的Base64&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt; || {{No}}&lt;br /&gt;
| colspan=3 {{No}} || {{No}}&lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | {{nowrap|[https://datatracker.ietf.org/doc/html/rfc4648#section-4 RFC 4648 §4]}}：标准base64&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || {{Optional|{{code|{{=}}}} 可选}} &lt;br /&gt;
| colspan=3 {{No}} || {{No}} &lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | {{nowrap|[https://datatracker.ietf.org/doc/html/rfc4648#section-5 RFC 4648 §5]}}：base64url（URL和文件名安全标准）&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; || {{Optional|{{code|{{=}}}} 可选}}&lt;br /&gt;
| colspan=3 {{No}} || {{No}} &lt;br /&gt;
|-&lt;br /&gt;
! {{rh}} | {{nowrap|[https://datatracker.ietf.org/doc/html/rfc4880 RFC 4880]}}：用于OpenPGP的Radix-64&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; || {{yes|{{code|{{=}}}} 强制}}&lt;br /&gt;
| {{yes|CR+LF}} || {{Yes|上限 76}} || {{Optional|Radix-64编码24位[[循环冗余校验|CRC]]}} || {{No}}&lt;br /&gt;
|}&lt;br /&gt;
{{noteslist}}&lt;br /&gt;
&lt;br /&gt;
=== MIME ===&lt;br /&gt;
在[[MIME]]格式的[[电子邮件]]中，Base64可以用来将binary的字节序列数据[[字符编码|编码]]成[[ASCII]]字符序列构成的文本。使用时，在传输编码方式中指定Base64。使用的字符包括大小写[[拉丁字母]]各26个、数字10个、加号&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;和斜杠&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;，共64个字符，等号&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;用来作为填充用途。&lt;br /&gt;
&lt;br /&gt;
完整的Base64定义可见RFC 1421和RFC 2045。编码后的数据比原始数据略长，为原来的&amp;lt;math&amp;gt;\frac{4}{3}&amp;lt;/math&amp;gt;。在电子邮件中，根据RFC 822规定，每76个字符，还需要加上一个回车换行。可以估算编码后数据长度大约为原长的135.1%。&lt;br /&gt;
&lt;br /&gt;
转换的时候，将3[[字节]]的数据，先后放入一个24位元的[[缓冲器|缓冲区]]中，先来的[[字节]]占高位。数据不足3字节的话，於緩衝區中剩下的位元用0补足。每次取出6位元（因为&amp;lt;math&amp;gt;2 ^ 6 = 64&amp;lt;/math&amp;gt;），按照其值选择&amp;lt;code style=&amp;quot;word-break: break-all&amp;quot;&amp;gt;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;lt;/code&amp;gt;中的字符作为编码后的输出，直到全部输入数据转换完成。&lt;br /&gt;
&lt;br /&gt;
若原数据长度不是3的[[倍數]]时且剩下1個輸入數據，則在編碼結果後加2個&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;；若剩下2個輸入數據，則在編碼結果後加1個&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
=== IRCu ===&lt;br /&gt;
在{{Link-en|IRCu}}等软件所使用的P10 [[IRC]]服务器间协议中，对客户与服务器的消息类型号（client/server numerics）和二进制IP地址采用了Base64编码。消息类型号的长度固定为3字节，故可直接编码为4个字节而不需要加填充。对IP地址进行编码时，则需要在地址前添加一些0比特，使之可以编码为整数个字节。这里所用的符号集与前述MIME的也有所不同，将&amp;lt;code&amp;gt;+/&amp;lt;/code&amp;gt;改成了&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
=== UTF-7 ===&lt;br /&gt;
[[UTF-7]]是一个修改版Base64（&amp;#039;&amp;#039;&amp;#039;Modified Base64&amp;#039;&amp;#039;&amp;#039;）。主要是将[[UTF-16]]的数据，用Base64的方法编码为可打印的[[ASCII]]字符序列。目的是传输Unicode数据。主要的区别在于不用等号&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;补餘，因为该字符通常需要大量的转译。&lt;br /&gt;
&lt;br /&gt;
标准可见 RFC 2152，《A Mail-Safe Transformation Format of Unicode》。&lt;br /&gt;
&lt;br /&gt;
=== URL ===&lt;br /&gt;
Base64编码可用于在[[HTTP]]环境下传递较长的标识信息。例如，在[[Java]][[持久化]]系统[[Hibernate]]中，就采用了Base64来将一个较长的唯一标识符（一般为128-bit的[[UUID]]）编码为一个字符串，用作HTTP表单和HTTP GET [[URL]]中的参数。在其他应用程序中，也常常需要把二进制数据编码为适合放在URL（包括隐藏表单域）中的形式。此时，采用Base64编码不仅比较简短，同时也具有不可读性，即所编码的数据不会被人用肉眼所直接看到。&lt;br /&gt;
&lt;br /&gt;
然而，标准的Base64并不适合直接放在URL裡传输，因为URL编码器会把标准Base64中的&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;字符变为形如&amp;lt;code&amp;gt;%XX&amp;lt;/code&amp;gt;的形式，而这些&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;号在存入数据库时还需要再进行转换，因为[[ANSI]] [[SQL]]中已将&amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;号用作通配符。&lt;br /&gt;
&lt;br /&gt;
为解决此问题，可采用一种&amp;#039;&amp;#039;&amp;#039;用于URL的改进Base64&amp;#039;&amp;#039;&amp;#039;编码，它不在末尾填充&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;号，并将标准Base64中的&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;分别改成了&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;，这样就免去了在URL编解码和数据库存储时所要做的转换，避免了编码信息长度在此过程中的增加，并统一了数据库、表单等处对象标识符的格式。&lt;br /&gt;
&lt;br /&gt;
另有一种&amp;#039;&amp;#039;&amp;#039;用于正则表达式的改进Base64&amp;#039;&amp;#039;&amp;#039;变种，它将&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;改成了&amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;，因为&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;，&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;以及前面在IRCu中用到的&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;和&amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;在[[正则表达式]]中都可能具有特殊含义。&lt;br /&gt;
&lt;br /&gt;
此外还有一些变种，它们将&amp;lt;code&amp;gt;+/&amp;lt;/code&amp;gt;改为&amp;lt;code&amp;gt;_-&amp;lt;/code&amp;gt;或&amp;lt;code&amp;gt;._&amp;lt;/code&amp;gt;（用作编程语言中的标识符名称）或&amp;lt;code&amp;gt;.-&amp;lt;/code&amp;gt;（用于[[XML]]中的&amp;#039;&amp;#039;Nmtoken&amp;#039;&amp;#039;）甚至&amp;lt;code&amp;gt;_:&amp;lt;/code&amp;gt;（用于XML中的&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;）。&lt;br /&gt;
&lt;br /&gt;
=== 其他 ===&lt;br /&gt;
* 垃圾訊息傳播者用Base64來避過反[[垃圾郵件]]工具，因為那些工具通常都不會翻譯Base64的訊息。&lt;br /&gt;
* 在{{Link-en|LDIF}}檔案，Base64用作编码字串。&lt;br /&gt;
&lt;br /&gt;
== 相关事件 ==&lt;br /&gt;
*2018年2月电子邮件程序 {{tsl|en|Exim|}} 发现重大漏洞，编号为 [https://exim.org/static/doc/security/CVE-2018-6789.txt CVE-2018-6789] {{Wayback|url=https://exim.org/static/doc/security/CVE-2018-6789.txt |date=20180312033820 }} 的[[緩衝區溢位]]漏洞允许攻击者在服务器上远程执行恶意代码。漏洞位于 base64 解码函数中，影响 Exim v4.90.1 之前的所有版本，多达 40 万服务器受到影响。&amp;lt;ref&amp;gt;{{Cite web |url=https://devco.re/blog/2018/03/06/exim-off-by-one-RCE-exploiting-CVE-2018-6789-en/ |title=存档副本 |accessdate=2018-03-07 |archive-date=2018-07-23 |archive-url=https://web.archive.org/web/20180723183720/https://devco.re/blog/2018/03/06/exim-off-by-one-RCE-exploiting-CVE-2018-6789-en/ |dead-url=no }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=https://www.solidot.org/story?sid=55710 |title=存档副本 |accessdate=2018-03-07 |archive-date=2018-03-08 |archive-url=https://web.archive.org/web/20180308041715/https://www.solidot.org/story?sid=55710 |dead-url=no }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
*  [[Base58]]&lt;br /&gt;
* {{Link-en|Radix-64}}&lt;br /&gt;
* {{Link-en|Ascii85}}&lt;br /&gt;
* [[Quoted-printable]]&lt;br /&gt;
* [[uuencode]]&lt;br /&gt;
* {{Link-en|yEnc}}&lt;br /&gt;
* {{Link-en|8BITMIME}}&lt;br /&gt;
* [[URL]]&lt;br /&gt;
&lt;br /&gt;
== 参考资料 ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
*RFC 1421（Privacy Enhancement for Electronic Internet Mail）&lt;br /&gt;
*RFC 2045（MIME）&lt;br /&gt;
*RFC 3548（The Base16, Base32, and Base64 Data Encodings）在 RFC 4648 中被替代&lt;br /&gt;
*[https://cvt.creation.im/encode/base64  Online Base64 Encoding] {{Wayback|url=https://cvt.creation.im/encode/base64 |date=20240220055520 }}&lt;br /&gt;
*[https://cvt.creation.im/decode/base64  Online Base64 Decoding] {{Wayback|url=https://cvt.creation.im/decode/base64 |date=20240220055519 }}&lt;br /&gt;
*[https://cvt.creation.im/encode/base64  在线Base64编码] {{Wayback|url=https://cvt.creation.im/encode/base64 |date=20240220055520 }}&lt;br /&gt;
*[https://cvt.creation.im/decode/base64  在线Base64解码] {{Wayback|url=https://cvt.creation.im/decode/base64 |date=20240220055519 }}&lt;br /&gt;
&lt;br /&gt;
在线Base64编码&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{pns}}&lt;br /&gt;
{{Data Exchange}}&lt;br /&gt;
&lt;br /&gt;
[[Category:标准]]&lt;br /&gt;
[[Category:文件格式]]&lt;br /&gt;
[[Category:数据序列化格式]]&lt;/div&gt;</summary>
		<author><name>imported&gt;暁月凛奈</name></author>
	</entry>
</feed>