Flutter 接口签名MD5加密

Posted joe235

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter 接口签名MD5加密相关的知识,希望对你有一定的参考价值。

第一步 更新pubspec.yaml

crypto: ^2.1.1+1

第二步 先引入头文件:

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

直接上代码:

String getSign(Map parameter)  
    var Key = 密钥;
    var timestamp = new DateTime.now().millisecondsSinceEpoch;
    var versionNumber = app-v1;
    /// 存储所有key
    List<String> allKeys = [];
    parameter.forEach((key,value)
      allKeys.add(key + value);
    );
    allKeys.add(timestamp + timestamp.toString());
    allKeys.add(versionNumber + versionNumber);
    /// key排序
    allKeys.sort((obj1,obj2)
      return obj1.compareTo(obj2);
    );
    // /// 存储所有键值对
    // List<String> pairs = [];
    // /// 添加键值对
    // allKeys.forEach((key)
    //   pairs.add("$key$parameter[key]");
    // );
    /// 数组转string
    String pairsString = allKeys.join("");
    /// 拼接 ABC 是你的秘钥
    String sign = Key + pairsString + Key;
    /// hash
    String signString = generateMd5(sign).toUpperCase();
    //String signString = md5.convert(utf8.encode(sign)).toString().toUpperCase();  //直接写也可以
    return signString;
  
  /// md5加密
  String generateMd5(String data) 
    var content = new Utf8Encoder().convert(data);
    var digest = md5.convert(content);
    // 这里其实就是 digest.toString()
    return hex.encode(digest.bytes);
  

调用:

var formData = adCode: 000000;
formData[sign] = getSign(formData); 

非常感谢大神的帮忙。

以上是关于Flutter 接口签名MD5加密的主要内容,如果未能解决你的问题,请参考以下文章

API接口签名验证_MD5加密出现不同结果的解决方法

postman 发送MD5加密签名请求

JS进行Base64编码,MD5加密,URL编码实现快递鸟API接口签名验证

用JS进行Base64编码,MD5加密,实现签名验证 调用快递鸟API接口 完成快递单号查询 JavaScript

flutter dart Md5加密

[接口测试]JMeter中的字符串加密处理