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

非常感谢大神的帮忙。

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

时间: 2024-08-30 17:41:06

Flutter 接口签名MD5加密的相关文章

【接口安全】接口合法性验证加密验签SIGN 签名规则

在对接API接口时,接口地址和参数结构都很容易被黑客抓包,从而模拟发送请求. 考虑到安全性,防止别人冒名调用,要对接口请求进行合法性验证. 基本原理如下 双方约定 APPID:参与签名和网络传输 APPSecretKey:约定秘钥,保存在双发服务器,只参与签名,不参与网络传输 签名方法 调用API时,需要将所有参数名称以及参数值加入签名, 即:系统级参数(除去SIGN)名称.系统级参数值.应用级参数名称.应用级参数值全部加入签名. 签名参数排序 签名时,根据参数名称,将除签名(sign)外所有请

postman 发送MD5加密签名请求

1.设置环境变量 2.请求接口实例 3.  询价签名 :sign =slon + slat+ timestamp +token  对字符串sign做md5,得到32位小写的sign import hashlib getprice_sign =slon + slat+ timestamp +token getprice_sign=hashlib.md5(getprice_sign.encode('utf-8')).hexdigest() print("询价签名是:",getprice_s

jmeter完成md5加密的接口请求参数

百度搜索:小强测试品牌 挨踢脱口秀,将技术娱乐化,碎片系统化,尽在荔枝FM(http://www.lizhi.fm/200893) <小强软件测试疯狂讲义-性能及自动化>出版啦,各大网店均可购买 jmeter完成接口测试不难,基本的使用可以观看我的视频:http://edu.51cto.com/course/course_id-2324.html 但有时候我们请求的参数可能需要加密,比如登录接口中的密码可能需要经过md5加密这时候怎么处理呢? 第一种方法: 这种方法比较简单,jmeter内置了

使用Jmeter测试MD5加密接口性能测试实战

性能测试过程中,有时候会遇到需要进行加解密的接口,下面我就来介绍如何针对MD5加密接口进行性能测试 1.首先找开发了解需求,知道是一个http类型的post请求,需要对请求的applianceId参数进行MD5加密处理,然后把该参数输入到sign,最后发起请求给服务器 2.我们需要做的就是问开发难道MD5加密函数(java),然后通过jmeter的前置处理器BeanShell PreProcessor,就可以实现该效果 3.由于applianceId也需要参数化,所以需要使用CSV数据文件处理进

python接口自动化测试二十七:密码MD5加密

''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import hashlib # 待加密信息str = 'asdas89799,.//plrmf'# 创建md5对象hl = hashlib.md5()# Tips# 此处必须声明encode# 若写法为hl.update(str) 报错为: Unicode-objects must be encoded before hashinghl.update(str.encod

接口中的 sort排序 + md5加密

<?php/** * Created by PhpStorm. * User: Shinelon * Date: 2019/3/22 * Time: 21:18 */ namespace frontend\controllers; use yii\rest\ActiveController; class SignController extends ActiveController{ public $modelClass=''; public function actionGetSign(){

签名、加密、证书的基本原理和理解

最近开始接触后端PHP开发,里面涉及到的签名.加密.证书等概念弄得自己头晕眼花,最近查看了相关资料,下面把自己的理解写下来,有不对的地方,还请多指点指点. 数据传输安全的要满足的要求: 消息的发送方能够确定消息只有预期的接收方可以解密(不保证第三方无法获得,但保证第三方无法解密). 消息的接收方可以确定消息是由谁发送的(消息的接收方可以确定消息的发送方). 消息的接收方可以确定消息在途中没有被篡改过(必须确认消息的完整性). 对称加密 网络的数据传输从发送方发出到接收方接收到,要经过数个节点才能

自动化测试第八节---base64、zip方法、异常处理、接口签名、网络编程

1.base64加密 import base64s='1234'new_s = base64.b64encode(s.encode())#加密print('加密完的',new_s)old_s = base64.b64decode(new_s.decode()).decode() #解密回来的print('解密回来的',old_s) def bs64_data_encode(st): '''这个函数是用来base64加密的''' salt='12345' new_str = str(st)+sal

接口签名2

前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等,但是为了安全起见让用户暴露的明文密码次数越少越好,我们一般在web项目中,大多数采用保存的session中,然后在存一份到cookie中,来保持用户的回话有效性.但是在app提供的开放接口中,后端服务器在用户登录后如何去验证和维护用户的登陆有效性呢,以下是参考项目中设计的解决方案,其原理和大多数开放