Flutter 和 dart 将字符串转换为 md5 然后作为字符串调用

Flutter and dart convert string to md5 then call as a string

对于我正在使用的 api,我必须将字符串密码和盐转换为 md5 字符串并在 url post 请求中调用该字符串, 我的代码如下所示:

generateMd5(String data) {
  var content = new Utf8Encoder().convert(sp);
  var md5 = crypto.md5;
  var digest = md5.convert(content);
  return digest.toString();
}

问题是我无法将其作为字符串调用。当我输入 "print(data)" 时,它说它是一个未定义的名称。

您的加盐密码令牌需要这样的方法。

String makeToken(String password, String salt) =>
    md5.convert(utf8.encode(password + salt)).toString().toLowerCase();

调用 print(makeToken('sesame', 'c19b2d')); 产生 26719a1196d2a940705a59634eb18eab,如测试向量所示。

提供令牌作为 t 参数,盐作为 API 调用的 s 参数。

您可能会发现以下内容对您的 salt 创建有用:

final _random = Random();

String randomToken(int length) => String.fromCharCodes(
      List.generate(length, (_) {
        var ch = _random.nextInt(52);
        if (ch > 25) {
          ch += 6;
        }
        return ch + 0x41;
      }),
    );

String newSalt() => randomToken(6);