2013-04-11 4 views

risposta

24

Richiede alcuni passaggi, ma la codifica di una stringa in base64 è piuttosto semplice.

Dart ha una funzione nella libreria package:crypto, CryptoUtils.bytesToBase64, che accetta un elenco di byte da codificare come base64. Per ottenere l'elenco dei byte da una stringa Dart, è possibile utilizzare la funzione UTF8.encode() nella libreria dart:convert.

Tutti insieme, questo appare come:

import 'dart:convert'; 
import 'package:crypto/crypto.dart'; 

main() { 
    var str = "Hello world"; 
    var bytes = UTF8.encode(str); 
    var base64 = CryptoUtils.bytesToBase64(bytes); 
    print(base64); 
} 

se si sta lavorando all'interno del browser, quindi si ha la possibilità più semplice di utilizzare il browser incorporato in btoa funzione. Il frammento di codice di cui sopra diventa:

import 'dart:html'; 

main() { 
    var str = "Hello world"; 
    var base64 = window.btoa(str); 
    print(base64); 
} 
+5

partire 0.9.2 del pacchetto 'crypto',' CryptoUtils' è deprecato. Usa invece 'BASE64' dal pacchetto' dart: convert'. –

+0

Sì, questo è stato reso molto più semplice con BASE64 in dart: convert. Per favore considera di contrassegnare la risposta di Ben come accettata invece di questa. – filiph

6

Non è necessario usare il pacchetto crittografia poiché le librerie di base forniscono supporto integrato per la codifica e la decodifica base64.

https://api.dartlang.org/1.14.2/dart-convert/BASE64-constant.html

import 'dart:convert'; 

main() { 
    var str = "Hello world"; 
    var bytes = UTF8.encode(str); 
    var base64 = BASE64.encode(bytes); 
    print(base64); 
}