https://de.wikipedia.org/w/api.php?action=feedcontributions&feedformat=atom&user=Wilsopher Wikipedia - Benutzerbeiträge [de] 2025-05-14T16:31:51Z Benutzerbeiträge MediaWiki 1.44.0-wmf.28 https://de.wikipedia.org/w/index.php?title=Base64&diff=255930635 Base64 2025-05-12T02:05:09Z <p>Wilsopher: Link to encode/decode base64 text was outdated, and replaced with a new one.</p> <hr /> <div>'''Base64''' ist ein Verfahren zur [[Code|Kodierung]] von 8-[[Bit]]-[[Binärdatei|Binärdaten]] (z.&amp;nbsp;B. ausführbare Programme, [[ZIP-Dateiformat|ZIP-Dateien]] oder Bilder) in eine Zeichenfolge, die nur aus lesbaren [[American Standard Code for Information Interchange|ASCII-Zeichen]] besteht.<br /> <br /> Es findet im Internet-Standard [[Multipurpose Internet Mail Extensions]] (MIME) Anwendung und wird dort zum Versenden von [[E-Mail]]-Anhängen verwendet. Nötig ist dies, um den problemlosen Transport von beliebigen Binärdaten zu gewährleisten, da [[Simple Mail Transfer Protocol|SMTP]] in seiner ursprünglichen Fassung nur für den Versand von 7-Bit-ASCII-Zeichen ausgelegt war. Durch die Kodierung steigt der Platzbedarf des Datenstroms um 33–36 % (33 % durch die Kodierung selbst, bis zu weitere 3 % durch die im kodierten Datenstrom eingefügten Zeilenumbrüche). Base64 wird zum Beispiel auch zur Kodierung von Benutzernamen und Passwort in der [[HTTP-Authentifizierung#Basic Authentication|HTTP-Basisauthentifizierung]] und zur Übertragung von [[Secure Shell|SSH]]-Server-Zertifikaten verwendet.<br /> <br /> == Vorgehen bei der Kodierung ==<br /> Zur Kodierung werden die Zeichen &lt;code&gt;A–Z&lt;/code&gt;, &lt;code&gt;a–z&lt;/code&gt;, &lt;code&gt;0–9&lt;/code&gt;, &lt;code&gt;+&lt;/code&gt; und &lt;code&gt;/&lt;/code&gt; verwendet sowie &lt;code&gt;=&lt;/code&gt; am Ende. Da diese Zeichen auch im [[Extended Binary Coded Decimals Interchange Code]] (EBCDIC) vorkommen (wenn auch an anderen Codepositionen), ist ein verlustfreier Datenaustausch zwischen diesen Plattformen gesichert.<br /> <br /> [[Datei:Base64-de.png|Kodierung von Base64]]<br /> <br /> Zur Kodierung werden jeweils drei [[Byte]] des Bytestroms (= 24 Bit) in vier 6-Bit-Blöcke aufgeteilt. Jeder dieser 6-Bit-Blöcke bildet eine Zahl von 0 bis 63. Diese Zahlen werden anhand der nachfolgenden Umsetzungstabelle in „druckbare ASCII-Zeichen“ umgewandelt und ausgegeben. Der Name des Algorithmus erklärt sich durch ebendiesen Umstand – jedem Zeichen des kodierten Datenstroms lässt sich eine Zahl von 0 bis 63 zuordnen (siehe Tabelle). Mathematisch betrachtet gleicht dies einem [[Stellenwertsystem]] der Basis&amp;nbsp;64.<br /> <br /> === Padding ===<br /> Falls die Gesamtanzahl der Eingabebytes nicht durch drei teilbar ist, beinhaltet der letzte Eingabeblock weniger als 24 Bits. In diesem Fall ist ein [[Padding (Informatik)|Padding]] der Eingabedaten erforderlich. An den Eingabeblock werden Nullbits angehängt, bis die Länge durch 6 teilbar ist. Anschließend wird die Ausgabe mit einem oder zwei &lt;code&gt;=&lt;/code&gt; Zeichen aufgefüllt. Wenn der Eingabeblock 8&amp;nbsp;Bit lang ist, werden 4&amp;nbsp;Nullbits angehängt und zwei &lt;code&gt;=&lt;/code&gt; Zeichen ausgegeben. Wenn der Eingabeblock 16&amp;nbsp;Bit lang ist, werden 2&amp;nbsp;Nullbits angehängt und ein &lt;code&gt;=&lt;/code&gt; Zeichen ausgegeben.&lt;ref&gt;{{RFC-Internet |RFC=4648 |Titel=The Base16, Base32, and Base64 Data Encodings |Datum=2006-10 |Abschnitt=4}}&lt;/ref&gt;<br /> <br /> {| class=&quot;wikitable&quot; style=&quot;margin:auto&quot;<br /> |-<br /> |+ Beispiel: Padding<br /> ! Eingabebytes&lt;br /&gt; (Hex)<br /> ! Anzahl&lt;br /&gt; Bits<br /> ! aufgefüllt auf durch 6 teilbare Bitzahl&lt;br /&gt; (Binärdarstellung, Senkrechtstrich trennt Padding-Bits)<br /> ! Base64&lt;br /&gt; (ohne Ausgabe-Padding)<br /> ! Base64&lt;br /&gt; (mit Ausgabe-Padding)<br /> |-<br /> | &lt;code&gt;00&lt;/code&gt;<br /> |style=&quot;text-align:right;&quot; | &lt;code&gt;8&lt;/code&gt;<br /> | &lt;code&gt;000000 00&amp;#124;&lt;span style=&quot;color:blue&quot;&gt;0000&lt;/span&gt;&lt;/code&gt;<br /> | &lt;code&gt;AA&lt;/code&gt;<br /> | &lt;code&gt;AA&lt;span style=&quot;color:blue&quot;&gt;==&lt;/span&gt;&lt;/code&gt;<br /> |-<br /> | &lt;code&gt;00 00&lt;/code&gt;<br /> |style=&quot;text-align:right;&quot; | &lt;code&gt;16&lt;/code&gt;<br /> | &lt;code&gt;000000 000000 0000&amp;#124;&lt;span style=&quot;color:blue&quot;&gt;00&lt;/span&gt;&lt;/code&gt;<br /> | &lt;code&gt;AAA&lt;/code&gt;<br /> | &lt;code&gt;AAA&lt;span style=&quot;color:blue&quot;&gt;=&lt;/span&gt;&lt;/code&gt;<br /> |-<br /> | &lt;code&gt;00 00 00&lt;/code&gt;<br /> |style=&quot;text-align:right;&quot; | &lt;code&gt;24&lt;/code&gt;<br /> | &lt;code&gt;000000 000000 000000 000000&lt;/code&gt;<br /> | &lt;code&gt;AAAA&lt;/code&gt;<br /> | &lt;code&gt;AAAA&lt;/code&gt;<br /> |-<br /> | &lt;code&gt;FF&lt;/code&gt;<br /> |style=&quot;text-align:right;&quot; | &lt;code&gt;8&lt;/code&gt;<br /> | &lt;code&gt;111111 11&amp;#124;&lt;span style=&quot;color:blue&quot;&gt;0000&lt;/span&gt;&lt;/code&gt;<br /> | &lt;code&gt;/w&lt;/code&gt;<br /> | &lt;code&gt;/w&lt;span style=&quot;color:blue&quot;&gt;==&lt;/span&gt;&lt;/code&gt;<br /> |-<br /> |&lt;code&gt;FF FF&lt;/code&gt;<br /> |style=&quot;text-align:right;&quot; | &lt;code&gt;16&lt;/code&gt;<br /> | &lt;code&gt;111111 111111 1111&amp;#124;&lt;span style=&quot;color:blue&quot;&gt;00&lt;/span&gt;&lt;/code&gt;<br /> | &lt;code&gt;//8&lt;/code&gt;<br /> | &lt;code&gt;//8&lt;span style=&quot;color:blue&quot;&gt;=&lt;/span&gt;&lt;/code&gt;<br /> |-<br /> | &lt;code&gt;FF FF FF&lt;/code&gt;<br /> |style=&quot;text-align:right;&quot; | &lt;code&gt;24&lt;/code&gt;<br /> | &lt;code&gt;111111 111111 111111 111111&lt;/code&gt;<br /> | &lt;code&gt;////&lt;/code&gt;<br /> | &lt;code&gt;////&lt;/code&gt;<br /> |}<br /> <br /> Da sich die Anzahl der ursprünglichen Bytes immer eindeutig aus der Anzahl der Base64-Eingabe-Zeichen ermitteln lässt, wird in manchen Kontexten und Protokollen kein Padding verwendet (abweichend von der ursprünglichen Base64-Definition).<br /> <br /> === Platzbedarf ===<br /> Bei einer zu kodierenden Eingabe mit &lt;math&gt;n&lt;/math&gt; Byte beträgt der Platzbedarf für den Base64-kodierten Inhalt (ohne Zeilenumbrüche) &lt;math&gt;z = 4 \cdot \lceil \tfrac n 3 \rceil &lt;/math&gt; Zeichen. (Die Klammern um den Bruch stehen für die [[Abrundungsfunktion und Aufrundungsfunktion|aufrundende Ganzzahldivision]].)<br /> <br /> In der Darstellung von sehr langen Base64-Strings werden diese oftmals (zum Beispiel nach jeweils 64 Zeichen) umbrochen, also ein Zeilenumbruch eingefügt. Solche Zeilenumbrüche sind für die Dekodierung nicht von Belang und werden ignoriert.<br /> <br /> === {{Anker|Base64url}} Base64-Zeichensatz ===<br /> {| class=&quot;wikitable&quot; style=&quot;text-align:center;&quot;<br /> |-<br /> !colspan=&quot;3&quot;| Wert<br /> !rowspan=&quot;2&quot;| Zeichen<br /> !rowspan=&quot;18&quot; style=&quot;width:6px;padding:0;&quot;|<br /> !colspan=&quot;3&quot;| Wert<br /> !rowspan=&quot;2&quot;| Zeichen<br /> !rowspan=&quot;18&quot; style=&quot;width:6px;padding:0;&quot;|<br /> !colspan=&quot;3&quot;| Wert<br /> !rowspan=&quot;2&quot;| Zeichen<br /> !rowspan=&quot;18&quot; style=&quot;width:6px;padding:0;&quot;|<br /> !colspan=&quot;3&quot;| Wert<br /> !rowspan=&quot;2&quot;| Zeichen<br /> |-<br /> ! &lt;small&gt;dez.&lt;/small&gt; !! &lt;small&gt;binär&lt;/small&gt;<br /> ! hex.<br /> ! &lt;small&gt;dez.&lt;/small&gt; !! &lt;small&gt;binär&lt;/small&gt;<br /> ! hex.<br /> ! &lt;small&gt;dez.&lt;/small&gt; !! &lt;small&gt;binär&lt;/small&gt;<br /> ! hex.<br /> ! &lt;small&gt;dez.&lt;/small&gt; !! &lt;small&gt;binär&lt;/small&gt;<br /> ! hex.<br /> |-<br /> | 0 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;000000&lt;/small&gt;&lt;/code&gt;<br /> |00|| &lt;code style=&quot;border:0;&quot;&gt;A&lt;/code&gt; || 16 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;010000&lt;/small&gt;&lt;/code&gt;<br /> |10|| &lt;code style=&quot;border:0;&quot;&gt;Q&lt;/code&gt; || 32 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;100000&lt;/small&gt;&lt;/code&gt;<br /> |20|| &lt;code style=&quot;border:0;&quot;&gt;g&lt;/code&gt; || 48 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;110000&lt;/small&gt;&lt;/code&gt;<br /> |30|| &lt;code style=&quot;border:0;&quot;&gt;w&lt;/code&gt;<br /> |-<br /> | 1 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;000001&lt;/small&gt;&lt;/code&gt;<br /> |01|| &lt;code style=&quot;border:0;&quot;&gt;B&lt;/code&gt; || 17 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;010001&lt;/small&gt;&lt;/code&gt;<br /> |11|| &lt;code style=&quot;border:0;&quot;&gt;R&lt;/code&gt; || 33 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;100001&lt;/small&gt;&lt;/code&gt;<br /> |21|| &lt;code style=&quot;border:0;&quot;&gt;h&lt;/code&gt; || 49 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;110001&lt;/small&gt;&lt;/code&gt;<br /> |31|| &lt;code style=&quot;border:0;&quot;&gt;x&lt;/code&gt;<br /> |-<br /> | 2 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;000010&lt;/small&gt;&lt;/code&gt;<br /> |02|| &lt;code style=&quot;border:0;&quot;&gt;C&lt;/code&gt; || 18 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;010010&lt;/small&gt;&lt;/code&gt;<br /> |12|| &lt;code style=&quot;border:0;&quot;&gt;S&lt;/code&gt; || 34 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;100010&lt;/small&gt;&lt;/code&gt;<br /> |22|| &lt;code style=&quot;border:0;&quot;&gt;i&lt;/code&gt; || 50 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;110010&lt;/small&gt;&lt;/code&gt;<br /> |32|| &lt;code style=&quot;border:0;&quot;&gt;y&lt;/code&gt;<br /> |-<br /> | 3 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;000011&lt;/small&gt;&lt;/code&gt;<br /> |03|| &lt;code style=&quot;border:0;&quot;&gt;D&lt;/code&gt; || 19 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;010011&lt;/small&gt;&lt;/code&gt;<br /> |13|| &lt;code style=&quot;border:0;&quot;&gt;T&lt;/code&gt; || 35 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;100011&lt;/small&gt;&lt;/code&gt;<br /> |23|| &lt;code style=&quot;border:0;&quot;&gt;j&lt;/code&gt; || 51 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;110011&lt;/small&gt;&lt;/code&gt;<br /> |33|| &lt;code style=&quot;border:0;&quot;&gt;z&lt;/code&gt;<br /> |-<br /> | 4 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;000100&lt;/small&gt;&lt;/code&gt;<br /> |04|| &lt;code style=&quot;border:0;&quot;&gt;E&lt;/code&gt; || 20 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;010100&lt;/small&gt;&lt;/code&gt;<br /> |14|| &lt;code style=&quot;border:0;&quot;&gt;U&lt;/code&gt; || 36 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;100100&lt;/small&gt;&lt;/code&gt;<br /> |24|| &lt;code style=&quot;border:0;&quot;&gt;k&lt;/code&gt; || 52 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;110100&lt;/small&gt;&lt;/code&gt;<br /> |34|| &lt;code style=&quot;border:0;&quot;&gt;0&lt;/code&gt;<br /> |-<br /> | 5 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;000101&lt;/small&gt;&lt;/code&gt;<br /> |05|| &lt;code style=&quot;border:0;&quot;&gt;F&lt;/code&gt; || 21 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;010101&lt;/small&gt;&lt;/code&gt;<br /> |15|| &lt;code style=&quot;border:0;&quot;&gt;V&lt;/code&gt; || 37 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;100101&lt;/small&gt;&lt;/code&gt;<br /> |25|| &lt;code style=&quot;border:0;&quot;&gt;l&lt;/code&gt; || 53 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;110101&lt;/small&gt;&lt;/code&gt;<br /> |35|| &lt;code style=&quot;border:0;&quot;&gt;1&lt;/code&gt;<br /> |-<br /> | 6 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;000110&lt;/small&gt;&lt;/code&gt;<br /> |06|| &lt;code style=&quot;border:0;&quot;&gt;G&lt;/code&gt; || 22 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;010110&lt;/small&gt;&lt;/code&gt;<br /> |16|| &lt;code style=&quot;border:0;&quot;&gt;W&lt;/code&gt; || 38 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;100110&lt;/small&gt;&lt;/code&gt;<br /> |26|| &lt;code style=&quot;border:0;&quot;&gt;m&lt;/code&gt; || 54 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;110110&lt;/small&gt;&lt;/code&gt;<br /> |36|| &lt;code style=&quot;border:0;&quot;&gt;2&lt;/code&gt;<br /> |-<br /> | 7 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;000111&lt;/small&gt;&lt;/code&gt;<br /> |07|| &lt;code style=&quot;border:0;&quot;&gt;H&lt;/code&gt; || 23 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;010111&lt;/small&gt;&lt;/code&gt;<br /> |17|| &lt;code style=&quot;border:0;&quot;&gt;X&lt;/code&gt; || 39 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;100111&lt;/small&gt;&lt;/code&gt;<br /> |27|| &lt;code style=&quot;border:0;&quot;&gt;n&lt;/code&gt; || 55 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;110111&lt;/small&gt;&lt;/code&gt;<br /> |37|| &lt;code style=&quot;border:0;&quot;&gt;3&lt;/code&gt;<br /> |-<br /> | 8 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;001000&lt;/small&gt;&lt;/code&gt;<br /> |08|| &lt;code style=&quot;border:0;&quot;&gt;I&lt;/code&gt; || 24 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;011000&lt;/small&gt;&lt;/code&gt;<br /> |18|| &lt;code style=&quot;border:0;&quot;&gt;Y&lt;/code&gt; || 40 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;101000&lt;/small&gt;&lt;/code&gt;<br /> |28|| &lt;code style=&quot;border:0;&quot;&gt;o&lt;/code&gt; || 56 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;111000&lt;/small&gt;&lt;/code&gt;<br /> |38|| &lt;code style=&quot;border:0;&quot;&gt;4&lt;/code&gt;<br /> |-<br /> | 9 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;001001&lt;/small&gt;&lt;/code&gt;<br /> |09|| &lt;code style=&quot;border:0;&quot;&gt;J&lt;/code&gt; || 25 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;011001&lt;/small&gt;&lt;/code&gt;<br /> |19|| &lt;code style=&quot;border:0;&quot;&gt;Z&lt;/code&gt; || 41 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;101001&lt;/small&gt;&lt;/code&gt;<br /> |29|| &lt;code style=&quot;border:0;&quot;&gt;p&lt;/code&gt; || 57 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;111001&lt;/small&gt;&lt;/code&gt;<br /> |39|| &lt;code style=&quot;border:0;&quot;&gt;5&lt;/code&gt;<br /> |-<br /> | 10 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;001010&lt;/small&gt;&lt;/code&gt;<br /> |0A|| &lt;code style=&quot;border:0;&quot;&gt;K&lt;/code&gt; || 26 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;011010&lt;/small&gt;&lt;/code&gt;<br /> |1A|| &lt;code style=&quot;border:0;&quot;&gt;a&lt;/code&gt; || 42 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;101010&lt;/small&gt;&lt;/code&gt;<br /> |2A|| &lt;code style=&quot;border:0;&quot;&gt;q&lt;/code&gt; || 58 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;111010&lt;/small&gt;&lt;/code&gt;<br /> |3A|| &lt;code style=&quot;border:0;&quot;&gt;6&lt;/code&gt;<br /> |-<br /> | 11 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;001011&lt;/small&gt;&lt;/code&gt;<br /> |0B|| &lt;code style=&quot;border:0;&quot;&gt;L&lt;/code&gt; || 27 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;011011&lt;/small&gt;&lt;/code&gt;<br /> |1B|| &lt;code style=&quot;border:0;&quot;&gt;b&lt;/code&gt; || 43 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;101011&lt;/small&gt;&lt;/code&gt;<br /> |2B|| &lt;code style=&quot;border:0;&quot;&gt;r&lt;/code&gt; || 59 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;111011&lt;/small&gt;&lt;/code&gt;<br /> |3B|| &lt;code style=&quot;border:0;&quot;&gt;7&lt;/code&gt;<br /> |-<br /> | 12 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;001100&lt;/small&gt;&lt;/code&gt;<br /> |0C|| &lt;code style=&quot;border:0;&quot;&gt;M&lt;/code&gt; || 28 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;011100&lt;/small&gt;&lt;/code&gt;<br /> |1C|| &lt;code style=&quot;border:0;&quot;&gt;c&lt;/code&gt; || 44 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;101100&lt;/small&gt;&lt;/code&gt;<br /> |2C|| &lt;code style=&quot;border:0;&quot;&gt;s&lt;/code&gt; || 60 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;111100&lt;/small&gt;&lt;/code&gt;<br /> |3C|| &lt;code style=&quot;border:0;&quot;&gt;8&lt;/code&gt;<br /> |-<br /> | 13 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;001101&lt;/small&gt;&lt;/code&gt;<br /> |0D|| &lt;code style=&quot;border:0;&quot;&gt;N&lt;/code&gt; || 29 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;011101&lt;/small&gt;&lt;/code&gt;<br /> |1D|| &lt;code style=&quot;border:0;&quot;&gt;d&lt;/code&gt; || 45 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;101101&lt;/small&gt;&lt;/code&gt;<br /> |2D|| &lt;code style=&quot;border:0;&quot;&gt;t&lt;/code&gt; || 61 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;111101&lt;/small&gt;&lt;/code&gt;<br /> |3D|| &lt;code style=&quot;border:0;&quot;&gt;9&lt;/code&gt;<br /> |-<br /> | 14 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;001110&lt;/small&gt;&lt;/code&gt;<br /> |0E|| &lt;code style=&quot;border:0;&quot;&gt;O&lt;/code&gt; || 30 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;011110&lt;/small&gt;&lt;/code&gt;<br /> |1E|| &lt;code style=&quot;border:0;&quot;&gt;e&lt;/code&gt; || 46 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;101110&lt;/small&gt;&lt;/code&gt;<br /> |2E|| &lt;code style=&quot;border:0;&quot;&gt;u&lt;/code&gt; || 62 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;111110&lt;/small&gt;&lt;/code&gt;<br /> |3E|| &lt;code style=&quot;border:0;&quot;&gt;+&lt;/code&gt;<br /> |-<br /> | 15 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;001111&lt;/small&gt;&lt;/code&gt;<br /> |0F|| &lt;code style=&quot;border:0;&quot;&gt;P&lt;/code&gt; || 31 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;011111&lt;/small&gt;&lt;/code&gt;<br /> |1F|| &lt;code style=&quot;border:0;&quot;&gt;f&lt;/code&gt; || 47 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;101111&lt;/small&gt;&lt;/code&gt;<br /> |2F|| &lt;code style=&quot;border:0;&quot;&gt;v&lt;/code&gt; || 63 || &lt;code style=&quot;border:0;&quot;&gt;&lt;small&gt;111111&lt;/small&gt;&lt;/code&gt;<br /> |3F|| &lt;code style=&quot;border:0;&quot;&gt;/&lt;/code&gt;<br /> |}<br /> <br /> In [[Dateiname]]n und [[Uniform Resource Locator|URLs]] können die Zeichen &lt;code&gt;+&lt;/code&gt;, &lt;code&gt;/&lt;/code&gt; und &lt;code&gt;=&lt;/code&gt; nicht verwendet werden, da sie dort für besondere Funktionen reserviert sind. In einem solchen Fall wird mit ''base64url'' eine inkompatible Abwandlung beschrieben. Die Zeichen &lt;code&gt;+&lt;/code&gt; und &lt;code&gt;/&lt;/code&gt; werden dann durch &lt;code&gt;-&lt;/code&gt; (Minus, ASCII 2D&lt;sub&gt;hex&lt;/sub&gt;) und &lt;code&gt;_&lt;/code&gt; (Unterstrich, ASCII 5F&lt;sub&gt;hex&lt;/sub&gt;) ersetzt. Das Füllzeichen &lt;code&gt;=&lt;/code&gt; am Ende wird ''[[URL-Encoding|prozentkodiert]]'' zu &lt;code&gt;%3d&lt;/code&gt;, kann aber entfallen, wenn die Länge des Strings bekannt ist.&lt;ref name=&quot;RFC4648&quot; /&gt;<br /> <br /> == Beispiele ==<br /> Polyfon zwitschernd aßen Mäxchens Vögel Rüben, Joghurt und Quark<br /> <br /> Dieser 64 Zeichen lange Text wäre in [[UTF-8]]-Kodierung 68 Byte lang, da in UTF-8 das [[ß|Eszett]] und die [[Umlaut]]e jeweils eine Länge von zwei Bytes haben. Mit der Umwandlung zu Base64 wird daraus eine 92 Zeichen lange Base64-Zeichenkette:<br /> <br /> UG9seWZvbiB6d2l0c2NoZXJuZCBhw59lbiBNw6R4Y2hlbnMgVsO2Z2VsIFLDvGJl<br /> biwgSm9naHVydCB1bmQgUXVhcms=<br /> <br /> Erkennbar ist hierbei, dass Base64 eine für Menschen nicht lesbare Kodierung erstellt. Dieser Umstand ist jedoch ''nicht'' als wirksame [[Verschlüsselung]] anzusehen, da der Datenstrom der Eingabe sehr leicht aus der Zeichenfolge am Ausgang zurückgewonnen werden kann, sobald diese als Base64-kodiert erkannt ist.<br /> <br /> {| class=&quot;wikitable&quot; style=&quot;text-align:center;&quot;<br /> |+ Umwandlung der Zeichen „Pol“ in Base64<br /> |-<br /> ! Phase !!colspan=12| Daten !! Anmerkungen<br /> |-<br /> | Ursprungstext || colspan=12|&lt;code&gt;Pol&lt;/code&gt; ||<br /> |-<br /> | Unicode-Zeichen ||colspan=4| &lt;code&gt;U+0050&lt;/code&gt;||colspan=4|&lt;code&gt;U+006F&lt;/code&gt;||colspan=4|&lt;code&gt;U+006C&lt;/code&gt; || gemäß [[Unicodeblock Basis-Lateinisch]]<br /> |-<br /> | Bytes ||colspan=4| &lt;code&gt;0x50&lt;/code&gt;||colspan=4|&lt;code&gt;0x6F&lt;/code&gt;||colspan=4|&lt;code&gt;0x6C&lt;/code&gt; || gemäß [[UTF-8]]<br /> |-<br /> | Binärschreibweise ||colspan=4|&lt;code&gt;0101&amp;nbsp;0000&lt;/code&gt;||colspan=4|&lt;code&gt;0110&amp;nbsp;1111&lt;/code&gt;||colspan=4|&lt;code&gt;0110&amp;nbsp;1100&lt;/code&gt; || siehe [[Hexadezimalsystem]]<br /> |-<br /> | Gruppierung in 6er-Blöcken ||colspan=3|&lt;code&gt;010100&lt;/code&gt;||colspan=3|&lt;code&gt;000110&lt;/code&gt;||colspan=3|&lt;code&gt;111101&lt;/code&gt;||colspan=3|&lt;code&gt;101100&lt;/code&gt; || jeder 6er-Block entspricht einem Base64-Zeichen<br /> |-<br /> | Codierung als Base64-Zeichen||colspan=3|&lt;code&gt;U&lt;/code&gt;||colspan=3|&lt;code&gt;G&lt;/code&gt;||colspan=3|&lt;code&gt;9&lt;/code&gt;||colspan=3|&lt;code&gt;s&lt;/code&gt; || gemäß der Tabelle oben von „binär“ nach „Zeichen“<br /> |-<br /> | Ohne Leerzeichen ||colspan=12|&lt;code&gt;UG9s&lt;/code&gt; ||<br /> |}<br /> <br /> === Radix-64 ===<br /> Das [[OpenPGP]]-Datenformat definiert eine Variante von Base64, die ''ASCII Armor'' genannt wird. Diese besteht aus genormten Kopf- und Fußzeilen, welche zum einen den Anfang und das Ende der Daten anzeigen, zum anderen einen Hinweis für den menschlichen Leser geben, welche Art von Daten kodiert ist und mit welchem Programm die Daten erzeugt worden sind.<br /> <br /> An die Base64-kodierten Daten wird eine [[Prüfsumme]] ([[Zyklische Redundanzprüfung|CRC-24]]) angehängt; dieses leicht modifizierte Verfahren trägt den Namen '''Radix-64'''.<br /> <br /> &lt;pre&gt;<br /> -----BEGIN PGP MESSAGE-----<br /> Version: GnuPG v1.4.10 (GNU/Linux)<br /> <br /> y0piAGcFr3BQb2x5Zm9uIHp3aXRzY2hlcm5kIGHDn2VuIE3DpHhjaGVucyBWw7Zn<br /> ZWwgUsO8YmVuLCBKb2dodXJ0IHVuZCBRdWFyaw==<br /> =L3gC<br /> -----END PGP MESSAGE-----<br /> &lt;/pre&gt;<br /> <br /> Der Base64-Teil in diesem Beispiel beginnt mit &lt;code&gt;y0pi…&lt;/code&gt; und endet mit &lt;code&gt;…yaw==&lt;/code&gt;. Anschließend folgt ein Zeilenumbruch, ein Gleichheitszeichen und die Base64-kodierte [[Zyklische Redundanzprüfung|CRC-24-Prüfsumme]] über die Original-Nachricht (also ''vor'' der Base64-Kodierung).<br /> <br /> == Siehe auch ==<br /> * [[Quoted-Printable-Kodierung]]<br /> * [[UUencode]]<br /> * [[Base32]]<br /> * [[Base85]]<br /> <br /> == Normen und Standards ==<br /> * {{RFC-Internet |Autor=J. Linn |RFC=1421 |Titel=Privacy Enhancement for Internet Electronic Mail: Part I: Message Encryption and Authentication Procedures |Datum=1993-02 |Obsoletes=1113 |Kommentar=historisch}}<br /> * {{RFC-Internet |Autor=N. Borenstein, N. Freed |RFC=1521 |Titel=MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies |Datum=1993-09 |Standard=draft |Updated=1590 |Obsoletes=1341 |Kommentar=veraltet}}<br /> * {{RFC-Internet |Autor=S. Josefsson |RFC=3548 |Titel=The Base16, Base32, and Base64 Data Encodings |Datum=2003-07 |Updated=4648 |Kommentar=veraltet, abgelöst durch &lt;nowiki&gt;RFC&amp;nbsp;4648&lt;/nowiki&gt; |Errata=1}}<br /> * {{RFC-Internet |Autor=S. Josefsson |RFC=4648 |Titel=The Base16, Base32, and Base64 Data Encodings |Datum=2006-10 |Standard=proposed |Obsoletes=3548 |Errata=1}}<br /> * {{RFC-Internet |Autor=J. Callas, L. Donnerhacke, H. Finney, D. Shaw, R. Thayer |RFC=4880 |Titel=OpenPGP Message Format |Datum=2007-11 |Standard=proposed |Updated=5581 |Kommentar=löst &lt;nowiki&gt;RFC&amp;nbsp;1991&lt;/nowiki&gt; und &lt;nowiki&gt;RFC&amp;nbsp;2440&lt;/nowiki&gt; ab |Errata=1}}<br /> <br /> == Weblinks ==<br /> * [https://www.base64converter.org Base64-Codierung/Decodierung online.] base64decode.org<br /> <br /> == Einzelnachweise ==<br /> &lt;references&gt;<br /> &lt;ref name=&quot;RFC4648&quot;&gt;<br /> {{RFC-Internet |Autor=S. Josefsson |RFC=4648 |Titel=The Base16, Base32, and Base64 Data Encodings |Datum=2006-10 |Standard=proposed |Obsoletes=3548 |Errata=1}}<br /> &lt;/ref&gt;<br /> &lt;/references&gt;<br /> <br /> {{Navigationsleiste Stellenwertsysteme}}<br /> <br /> [[Kategorie:Zeichenkodierung]]<br /> [[Kategorie:Multipurpose Internet Mail Extensions]]<br /> [[Kategorie:Zahlensystem]]</div> Wilsopher