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

非常感謝大神的幫忙。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM