码迷,mamicode.com
首页 > 其他好文 > 详细

Flutter 接口签名MD5加密

时间:2019-09-11 16:20:12      阅读:615      评论:0      收藏:0      [点我收藏+]

标签:rss   art   time   gen   ring   each   key   div   epo   

第一步 更新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加密

标签:rss   art   time   gen   ring   each   key   div   epo   

原文地址:https://www.cnblogs.com/joe235/p/11506314.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!