zoukankan      html  css  js  c++  java
  • 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';
        parameter['timestamp'] = timestamp.toString();
        parameter['versionNumber'] = versionNumber; 
        /// 存储所有key
        List<String> allKeys = [];
        parameter.forEach((key,value){
          allKeys.add(key + value);
        });
        /// 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); 

    非常感谢大神的帮忙。

  • 相关阅读:
    eclipse安装插件最简单的方法!!
    mysql数据库导入sql文件的方法。
    拿起丢掉的东西,才叫做坚持。
    个人总结作业
    黄金点游戏程序注解
    结对项目的完成与体会
    第三周任务学习记录
    vs2013的安装与使用 测试
    习题作业
    对于四则运算编程自己的过程问题
  • 原文地址:https://www.cnblogs.com/joe235/p/11506314.html
Copyright © 2011-2022 走看看