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); 

    非常感谢大神的帮忙。

  • 相关阅读:
    css3正方体效果
    单行文本溢出和多行文本溢出变省略号
    iscroll的滑动效果
    angular笔记
    html页面的css样式、meta最常用的最基本最常规的配置参数
    解决webstorm卡顿问题
    pc端网页的设计尺寸
    时间字符串解析成日期时间格式
    Inf2Cat, signability test failed.
    #pragma once 与 #ifndef 解析(转载)
  • 原文地址:https://www.cnblogs.com/joe235/p/11506314.html
Copyright © 2011-2022 走看看