我正在使用需要在base64中编码的数据的API。如何在base64中编码一个简单的字符串?
答案 0 :(得分:29)
不需要使用加密包,因为核心库提供了对base64编码和解码的内置支持。
https://api.dartlang.org/stable/2.1.0/dart-convert/dart-convert-library.html
import 'dart:convert';
main() {
var str = "Hello world";
var bytes = utf8.encode(str);
var base64Str = base64.encode(bytes);
print(base64Str);
}
答案 1 :(得分:24)
它需要几个步骤,但在base64中编码字符串非常简单。
Dart在package:crypto库中有一个函数CryptoUtils.bytesToBase64
,它将一个字节列表编码为base64。为了从Dart字符串中获取字节列表,您可以使用dart:convert库中的UTF8.encode()
函数。
总之,这看起来像:
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);
}
如果您在浏览器中工作,那么您可以更轻松地使用浏览器内置的btoa
功能。上面的代码片段变为:
import 'dart:html';
main() {
var str = "Hello world";
var base64 = window.btoa(str);
print(base64);
}