1. Base64-Kodierungsregeln
Die Idee der Base64-Kodierung besteht darin, 64 grundlegende ASCII-Codezeichen zu verwenden, um die Daten neu zu kodieren. Es teilt die Daten, die codiert werden müssen, in ein Byte-Array auf. In Gruppen von 3 Bytes. Ordnen Sie die 24-Bit-Daten der Reihe nach an und teilen Sie die 24-Bit-Daten dann in 4 Gruppen auf, dh 6 Bits in jeder Gruppe. Fügen Sie dann vor dem höchsten Bit jeder Gruppe zwei Nullen hinzu, um ein Byte zu erhalten. Dadurch wird eine 3-Byte-Datengruppe in 4 Bytes umcodiert. Wenn die Anzahl der zu kodierenden Datenbytes kein ganzzahliges Vielfaches von 3 ist, dh die letzte Gruppe reicht beim Gruppieren nicht aus. Zu diesem Zeitpunkt werden 1 bis 2 0 Bytes in der letzten Gruppe gefüllt. Und fügen Sie am Ende 1 bis 2 „=“ hinzu, nachdem die endgültige Codierung abgeschlossen ist.
Beispiel: BASE64-Kodierung von ABC:
1 Holen Sie sich zuerst den ASCII-Codewert, der ABC entspricht. A (65) B (66) C (67); Nehmen Sie dann den Binärwert A (01000010) C (01000011); Verbinden Sie es miteinander (010000010100001001000011); teilen Sie es in 4 Datenblöcke in Einheiten von 6 Bits auf und füllen Sie das höchste Bit mit zwei Nullen, um einen 4-Byte-codierten Wert zu bilden, (00010000) (00010100) (00001001). (00000011), der blaue Teil sind die realen Daten;
5. Konvertieren Sie dann diese vier Datenbytes in Dezimalzahlen, um (16) (20) (9) (3) zu erhalten Finden Sie in den 64 grundlegenden Zeichentabellen von BASE64 die entsprechenden ASCII-Codezeichen (Q) (U) (J) (D). Der Wert hier ist tatsächlich der Index der Daten in der Zeichentabelle.
Hinweis: BASE64-Zeichentabelle: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
2. Dekodierungsregeln
Der Dekodierungsprozess besteht darin, 4 Bytes in 3 Bytes wiederherzustellen und die Wörter dann gemäß verschiedenen Datenformen umzuwandeln Das Array wird in Daten umgeordnet.
3. Implementierung in C#
Das Obige ist der Inhalt der C# Base64-Codierungsfunktion. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php. cn)!
byte[] bytes = Encoding.Default.GetBytes("helloworld"); string str = Convert.ToBase64String(bytes); Console.WriteLine(str); Console.ReadLine(); //base 64 decode bytes = Convert.FromBase64String(str); Console.WriteLine(Encoding.Default.GetString(bytes)); Console.ReadLine();