我如何生成随机字节并使用 dart 转换为十六进制

Wes*_*ont 2 dart

我正在尝试根据 Dart/Flutter 中的 PHP 代码生成会话代码:

private $length = 32;
substr(bin2hex(random_bytes($this->length), 0, $this->length);
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何在 dart 中创建这些 random_bytes,然后使用 DART 语言将它们转换为 bin2hex。

上面描述的这些函数来自 PHP(opencart 系统),我必须创建一个哈希来指定每个连接用户的会话。

此转换的预期结果类似于:

“004959d3386996b8f8b0e6180101059d”

jul*_*101 6

如果您的目标只是使用随机数生成这样的十六进制字符串,您可以执行以下操作:

import 'dart:math';

void main() {
  print(randomHexString(32)); // 1401280aa29717e4940f0845f0d43abd
}

Random _random = Random();

String randomHexString(int length) {
  StringBuffer sb = StringBuffer();
  for (var i = 0; i < length; i++) {
    sb.write(_random.nextInt(16).toRadixString(16));
  }
  return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)