base64Encode în Dart

base64Encode transformă octeți în text Base64; base64Decode face invers, din text Base64 în octeți.

Sintaxă
import 'dart:convert';

String base64Encode(List<int> bytes)
Uint8List base64Decode(String source)

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 String direct: 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ă.