Ce face base64Encode
Base64 scrie orice date binare (imagini, chei, fișiere) folosind doar 64 de caractere sigure: A-Z, a-z, 0-9, + și /, plus = pentru completare. Textul rezultat este cu aproximativ o treime mai lung decât datele.
base64Encode primește octeți (List<int>), nu text. Pentru un text, transformă-l mai întâi în octeți cu utf8.encode. base64Decode returnează octeți (Uint8List); pentru text, aplici apoi utf8.decode.
Base64 nu este criptare: oricine poate decoda textul. Dacă textul nu este Base64 valid, base64Decode aruncă FormatException. Pentru URL-uri și nume de fișiere vezi base64Url.
Parametri
| Parametru | Descriere |
|---|---|
bytes |
Octeții de codificat (valori 0–255). |
source |
Textul Base64 de decodat. |
Ce returnează
base64Encode: textul Base64. base64Decode: octeții, ca Uint8List.
Exemple
Exemplul 1: Text cu diacritice, dus și întors
import 'dart:convert';
void main() {
const mesaj = 'Bună ziua din Iași!';
final cod = base64Encode(utf8.encode(mesaj));
print(cod);
final octeti = base64Decode(cod);
print(octeti.length);
print(utf8.decode(octeti));
}
Rezultat
QnVuxIMgeml1YSBkaW4gSWHImWkh
21
Bună ziua din Iași!
Exemplul 2: Antet de autentificare HTTP Basic
Serverele HTTP primesc numele și parola în forma Basic base64(nume:parola).
import 'dart:convert';
void main() {
const utilizator = 'ana';
const parola = 'secret123';
final antet = 'Basic ${base64Encode(utf8.encode('$utilizator:$parola'))}';
print('Authorization: $antet');
}
Rezultat
Authorization: Basic YW5hOnNlY3JldDEyMw==
Exemplul 3: Text Base64 greșit
import 'dart:convert';
void main() {
for (final text in ['SWHImWk=', 'nu e base64!']) {
try {
print(utf8.decode(base64Decode(text)));
} on FormatException catch (eroare) {
print('Eroare: ${eroare.message}');
}
}
}
Rezultat
Iași
Eroare: Invalid character
Greșeli frecvente
- Dai un
Stringdirect:base64Encode('Ana')nu compilează. Funcția primește octeți:base64Encode(utf8.encode('Ana')). - Folosești Base64 ca să „ascunzi” parole. Oricine le decodează într-o secundă.
Comenzi înrudite
base64Url: Codec Base64 sigur pentru URL-uri: folosește – și _ în loc de + și /, așa că textul poate sta într-o adresă web.utf8: Codec-ul UTF-8: encode transformă textul în octeți, decode transformă octeții înapoi în text.Codec: Clasa de bază pentru perechi encode/decode (utf8, base64, json); fuse le leagă în lanț, inverted le inversează.