我和谷歌共成长-Flutter & Dart:生成随机字符串的 3 种方法

孤老 2022-08-18 14:37:18

 

img

本文向您展示了在 Dart(以及 Flutter)中生成随机字符串的 3 种不同方法。事不宜迟,让我们深入研究代码。

加入随机字母和数字

下面的示例演示了如何生成具有给定长度的随机字符串。结果将仅包含字母和数字(az、AZ、0-9)。

import 'dart:math';
import 'package:flutter/foundation.dart';
​
// Define a reusable function
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));
}

每次运行上述代码时,输出都会有所不同:

tFKOzF6eOs
WsJ1tF6IyIBfMMXCQS1t

使用加密库

这种方法利用了 Dart 团队发布的加密包。下面的示例将使用md5散列和sha1散列来生成随机字符串。

例子:

import 'package:flutter/foundation.dart';
import 'dart:math';
import 'dart:convert';
​
import 'package:crypto/crypto.dart';
​
// md5 hashing a random number
String md5RandomString() {
  final randomNumber = Random().nextDouble();
  final randomBytes = utf8.encode(randomNumber.toString());
  final randomString = md5.convert(randomBytes).toString();
  return randomString;
}
​
// sha1 hashing a random number
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());
}

输出:

eb858fc63586fb81123d750fe82e39e0
35911da7d122bffeb75714cdde4c96b55c7fa8ef

使用字符代码

此示例将生成具有给定长度的随机字符串。结果将包含特殊字符。

import 'dart:math';
import 'package:flutter/foundation.dart';
​
// Declare a fucntion for reusable purpose
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));
}

输出:

`[uvj][d\oZvymn]tYes]l]_gydf_uYmacjvgtanlinr_lougc
d__xvvvpclgfjqwqZZs\

总结

 

我们已经介绍了几种在 Dart 和 Flutter 程序中创建随机字符串的不同方法。

 

...全文
362 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-移动开发 发布问题, 以便更快地解决您的疑问

1,471

社区成员

发帖
与我相关
我的任务
社区描述
加入“谷歌开发者”社区,一起“共码未来。
android 企业社区
社区管理员
  • 谷歌开发者
  • 开发者大赛发布
  • 活动通知
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧