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);
对于我正在使用的 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);