ASCII, Unicode und Textdarstellung
Verstehen Sie, wie Text zu Bytes wird und warum Zeichenkodierung in kryptografischen Kontexten wichtig ist.
ASCII, Unicode und Textdarstellung ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.
ASCII als 7-Bit-Kodierung
ASCII (American Standard Code for Information Interchange), 1963 standardisiert, kodiert 128 Zeichen mit 7 Bit (Werte 0–127). Es umfasst das englische Alphabet (Groß- und Kleinbuchstaben), Ziffern, Satzzeichen und Steuerzeichen.
ASCII wurde für die englische Sprache und amerikanische Telekommunikationsgeräte entwickelt. Für den vorgesehenen Zweck funktionierte es gut, war aber grundsätzlich für jede Sprache außerhalb des Englischen ungeeignet.
Steuerzeichen in ASCII
Die ersten 32 ASCII-Zeichen (0–31) sowie DEL (127) sind Steuerzeichen. Sie wurden ursprünglich zur Steuerung von Fernschreibern entwickelt: LF (Zeilenvorschub, 10), CR (Wagenrücklauf, 13), BEL (Klingelzeichen, 7), TAB (9), ESC (27).
In kryptografischen Kontexten können Steuerzeichen Probleme verursachen. Ein Nullbyte (0x00) beendet C-Zeichenketten vorzeitig, und ein DEL- oder ESC-Zeichen könnte von Terminalemulatoren interpretiert werden.
Erweitertes ASCII und seine Probleme
Verschiedene Länder erstellten eigene Erweiterungen von ASCII, indem sie das 8. Bit verwendeten (Werte 128–255). So entstanden Hunderte inkompatibler Kodierungen: ISO-8859-1 (Latin-1) für Westeuropa, KOI-8R für Russisch und Big5 für Chinesisch.
Ein in einer Kodierung gespeichertes Dokument erscheint beim Öffnen mit einer anderen Kodierung als Zeichensalat. Das Fehlen eines universellen Standards machte die internationale Softwareentwicklung in den 1980er- und 1990er-Jahren zu einer erheblichen Herausforderung.
Unicode als universeller Zeichensatz
Unicode wurde geschaffen, um einen einzigen universellen Zeichensatz für alle menschlichen Schriftsysteme bereitzustellen. Derzeit definiert Unicode mehr als 149.000 Zeichen in 161 Schriftsystemen, darunter historische Schriften und Symbole.
Unicode trennt die Identität eines Zeichens (einen Codepoint, etwa U+0041 für "A") von der Kodierung (der Art, wie dieser Codepoint in Bytes gespeichert wird). Diese Trennung ermöglicht es mehreren Kodierungsformaten, dieselben Zeichen darzustellen.
UTF-8-Kodierung variabler Länge
UTF-8 kodiert Unicode-Codepoints mit 1 bis 4 Bytes. ASCII-Zeichen (U+0000 bis U+007F) verwenden genau 1 Byte, das mit ihrem ASCII-Wert identisch ist. Dadurch ist UTF-8 abwärtskompatibel zu ASCII.
Zeichen von U+0080 bis U+07FF verwenden 2 Bytes. U+0800 bis U+FFFF verwenden 3 Bytes (und decken damit die meisten verbreiteten Schriftsysteme ab, darunter Chinesisch, Japanisch und Koreanisch). U+10000 und darüber verwenden 4 Bytes.
UTF-16 und UTF-32
UTF-16 verwendet für die häufigsten Zeichen 2 Bytes (die Basic Multilingual Plane, U+0000 bis U+FFFF) und für Zeichen oberhalb von U+FFFF 4 Bytes (Surrogatpaare). UTF-16 wird intern von Windows und Java verwendet.
UTF-32 verwendet genau 4 Bytes pro Codepoint. Dadurch hat es eine feste Breite und ermöglicht eine einfache Indizierung anhand der Zeichenposition, ist aber für Text, der größtenteils aus ASCII besteht, speicherineffizient. UTF-32 wird in einigen internen Darstellungen für einen schnellen wahlfreien Zugriff verwendet.
Byte Order Mark (BOM)
Das Byte Order Mark (BOM) ist das Unicode-Zeichen U+FEFF, das am Anfang einer Datei platziert wird, um Byte-Reihenfolge und Kodierung anzugeben. In UTF-16 unterscheidet es Big-Endian (FE FF) von Little-Endian (FF FE).
In UTF-8 ist das BOM überflüssig, da UTF-8 keine Probleme mit der Byte-Reihenfolge hat. Einige Windows-Programme fügen es dennoch hinzu. Dies verursacht Probleme in kryptografischen Anwendungen, in denen das BOM als Daten und nicht als Markierung behandelt wird.
Warum Kodierung in der Kryptografie wichtig ist
Kryptografische Hashfunktionen und MACs arbeiten mit Bytefolgen, nicht mit abstrakten Zeichen. Die Zeichenfolge "café" wird in UTF-8 anders kodiert (4 Bytes: 63 61 66 C3 A9) als in Latin-1 (4 Bytes: 63 61 66 E9).
Wenn zwei Systeme dieselbe Zeichenfolge hashen, aber unterschiedliche Kodierungen verwenden, erzeugen sie unterschiedliche Hashes und die Authentifizierung schlägt fehl. Kryptografische Protokolle müssen die Kodierung ausdrücklich festlegen, um Interoperabilität zu gewährleisten.
Emoji in UTF-8
Emoji sind Unicode-Zeichen in der Supplementary Multilingual Plane. Das Emoji "Grinsendes Gesicht" (U+1F600) wird in UTF-8 mit 4 Bytes kodiert: F0 9F 98 80.
In Sicherheitskontexten wurden Emoji und Unicode-Zeichen mit voller Breite bei Homographenangriffen verwendet. Dabei wird durch eine URL wie "xn--pple-43d.com" (die wie "apple.com" aussieht) versucht, Benutzer zum Besuch einer schädlichen Website zu verleiten.
Unicode-Normalisierung und Kryptografie
Einige Zeichen können in mehreren Unicode-Formen dargestellt werden. "e mit Akut" kann U+00E9 (vorkomponiert) oder U+0065 U+0301 (e gefolgt von einem kombinierenden Akzent, dekomponiert) sein. Diese Formen sehen identisch aus, haben aber unterschiedliche Byte-Darstellungen.
Kryptografische Systeme, die Unicode vor dem Hashen nicht normalisieren, können für visuell identische Zeichenfolgen unterschiedliche Hashes erzeugen. Vor der Anwendung kryptografischer Operationen auf Text wird häufig eine NFKC-Normalisierung empfohlen.
Die richtige Kodierung für Kryptografie auswählen
Bei der Implementierung kryptografischer Systeme ist die Wahl der Kodierung eine kritische Entscheidung, die dokumentiert werden muss. Passwörter sollten vor dem Hashen als UTF-8 kodiert werden. Für Protokollfelder sollte die Kodierung in den Spezifikationsdokumenten festgelegt werden.
Durch nicht übereinstimmende Kodierungen verursachte Interoperabilitätsfehler sind eine häufige Fehlerquelle in kryptografischen Systemen. Zwei Implementierungen desselben Protokolls können unterschiedliche Authentifizierungsergebnisse liefern, wenn sie Zeichenfolgen unterschiedlich kodieren.
UTF-8-Kodierungsquiz
Testen Sie Ihr Verständnis der UTF-8-Kodierung.
Wichtigste Erkenntnisse: Textkodierung
ASCII umfasst 128 Zeichen und verwendet dafür 7 Bit. Unicode stellt einen universellen Codepoint-Bereich für alle menschlichen Schriftsysteme bereit. UTF-8 kodiert Unicode mit 1–4 Bytes, wobei ASCII eine 1-Byte-Teilmenge bildet.
In der Kryptografie ist die Kodierung wichtig, weil Hashfunktionen mit Bytes arbeiten. Derselbe Text erzeugt in unterschiedlichen Kodierungen unterschiedliche Hashes. Eine Unicode-Normalisierung ist vor kryptografischen Operationen auf Text unerlässlich.
Häufig gestellte Fragen
Ist die Lektion „ASCII, Unicode und Textdarstellung“ kostenlos?
Ja — der vollständige Text von „ASCII, Unicode und Textdarstellung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „ASCII, Unicode und Textdarstellung“?
Verstehen Sie, wie Text zu Bytes wird und warum Zeichenkodierung in kryptografischen Kontexten wichtig ist. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cryptology Academy zu starten?
Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „ASCII, Unicode und Textdarstellung“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Base64-Kodierung: So funktioniert sie
- ASCII, Unicode und Textdarstellung
- Hexadezimaldarstellung kryptografischer Ausgaben
- Kodierung vs. Verschlüsselung vs. Hashing