Flutter md5 加密

19 min read

使用的官方包

https://pub.dev/packages/crypto

MD5 加密

  // 百度翻译
  static baiduTranslate(String q, String target) {
    String appid = box.read("baiduTranslateSecretId") ?? "";
    String key = box.read("baiduTranslateSecretKey") ?? "";
    String salt = (DateTime.now()).millisecondsSinceEpoch.toString();
    final sign = md5.convert(utf8.encode(appid + q + salt + key)).toString();
    return Request.post(
      "https://fanyi-api.baidu.com/api/trans/vip/translate",
      data: {
        "q": q,
        "from": "auto",
        "to": target.toLowerCase(),
        "appid": appid,
        "salt": salt,
        "sign": sign
      },
      headers: {
        "Content-Type": "application/x-www-form-urlencoded",
      },
    );
  }
 // appid+q+salt+密钥的MD5值
  static String generateMD5(String appid, String q, String salt, String key) {
    // 1.拼接appid+q+salt+密钥
    String str = appid + q + salt + key;
    // 2.对str进行MD5加密
    var content = const Utf8Encoder().convert(str);
    var digest = md5.convert(content);
    // 3.将加密结果转换为字符串
    return digest.toString();
  }