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加密的主要内容,如果未能解决你的问题,请参考以下文章
JS进行Base64编码,MD5加密,URL编码实现快递鸟API接口签名验证