Dart MD5 From String

Put*_*yah 6 dart

如何从字符串生成md5哈希?

import 'package:crypto/crypto.dart' as crypto;
///Generate MD5 hash
generateMd5(String data) {
  var content = UTF8.encode(data);
  var md5 = crypto.md5;
}
Run Code Online (Sandbox Code Playgroud)

我不知道接下来要做什么

mic*_*lsp 16

一种更有效的方法如下:

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

String generateMd5(String input) {
  return md5.convert(utf8.encode(input)).toString();
}
Run Code Online (Sandbox Code Playgroud)

这样可以避免加载不必要的convert包并使用已经存在的包Utf8Codec,而不是在Utf8Encoder每次调用该函数时实例化一个对象。

  • 这确实应该是公认的答案。在此处阅读文档:https://api.dartlang.org/stable/2.4.0/dart-convert/dart-convert-library.html和此处:https://pub.dev/documentation/crypto/latest/crypto /MD5-class.html (3认同)
  • 如果有人尚未安装 [crypto 包](https://pub.dev/packages/crypto),请使用“flutter pub add crypto”进行安装。 (3认同)

Put*_*yah 15

找到答案:

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

///Generate MD5 hash
generateMd5(String data) {
  var content = new Utf8Encoder().convert(data);
  var md5 = crypto.md5;
  var digest = md5.convert(content);
  return hex.encode(digest.bytes);
}
Run Code Online (Sandbox Code Playgroud)


teh*_*sor 10

只是为了节省其他人几分钟的搜索时间,从流中散列/摘要文件,您可以使用:

    final fileStream = File('path/to/file.txt').openRead();
    final checksum = (await md5.bind(fileStream).first).toString();
Run Code Online (Sandbox Code Playgroud)