1. 加入随机字母和数字
下面的示例演示了如何生成具有给定长度的随机字符串。结果将仅包含字母和数字(az、AZ、0-9)
import 'dart:math';
import 'package:flutter/foundation.dart';
String generateRandomString(int length) {
final _random = Random();
const _availableChars =
'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890';
final randomString = List.generate(length,
(index) => _availableChars[_random.nextInt(_availableChars.length)])
.join();
return randomString;
}
void main() {
debugPrint(generateRandomString(10));
debugPrint(generateRandomString(20));
}
2. 使用加密库
这种方法利用了 Dart 团队发布的crypto包。下面的示例将使用 md5 散列和 sha1 散列来生成随机字符串。
import 'package:flutter/foundation.dart';
import 'dart:math';
import 'dart:convert';
import 'package:crypto/crypto.dart';
String md5RandomString() {
final randomNumber = Random().nextDouble();
final randomBytes = utf8.encode(randomNumber.toString());
final randomString = md5.convert(randomBytes).toString();
return randomString;
}
String sha1RandomString() {
final randomNumber = Random().nextDouble();
final randomBytes = utf8.encode(randomNumber.toString());
final randomString = sha1.convert(randomBytes).toString();
return randomString;
}
void main() {
debugPrint(md5RandomString());
debugPrint(sha1RandomString());
}
3. 使用字符代码
此示例将生成具有给定长度的随机字符串。结果将包含特殊字符
import 'dart:math';
import 'package:flutter/foundation.dart';
String generateRandomString(int len) {
final _random = Random();
final result = String.fromCharCodes(
List.generate(len, (index) => _random.nextInt(33) + 89));
return result;
}
void main() {
debugPrint(generateRandomString(50));
debugPrint(generateRandomString(20));