API-接口安全签名(一)
1:先上一个简单的安全签名示例:该例子是一个简单的联合登入 功能的api安全校验。
下面是签名方法:
注意:getsign里面的参数 是调用方 传来的数据,
method,api_version是 一些常量,商量好传来的参数,需要校验参数是否正确。
uname ,password 是用户名跟密码。需要在登入页面里面做实际操作,
token:是跟调用方商量好的常量。不放在参数里面。只需要双方在加密的时候在 加密字符串里面加上该参数即可
一般加密使用MD5 不可逆转加密。一般不建议 使用对称加密,对称加密都可以反加密出字符串,这样就有可能被破解接口调用方法。
/// <summary>
/// 获取签名
/// </summary>
/// <param name="method"></param>
/// <param name="api_version"></param>
/// <param name="uname"></param>
/// <param name="password"></param>
/// <returns></returns>
public static string getSign(string method, string api_version, string uname, string password)
{
string resultStr = string.Empty;
Dictionary<string, string> parameterList = SetParameterList(method, api_version, uname, password);
StringBuilder strBuild = new StringBuilder();
foreach (var str in parameterList)
{
strBuild.Append(utf8_string(str.Key));
strBuild.Append(utf8_string(str.Value));
}
//进行第一次MD5加密 Begin
//获取token值
string token = ConfigHelper.GetConfigString("mall.Token");
strBuild.Append(utf8_string(token));
string parameters = strBuild.ToString();
string resultStr0 = Md5Encry(parameters);
//End
//进行第二次MD5加密 Begin
resultStr = Md5Encry(resultStr0);
//End
return resultStr;
}
/// <summary>
/// MD5 32位加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
internal static string Md5Encry(string str)
{
string cl = str;
string resultStr = "";
MD5 md5 = MD5.Create();//实例化一个md5对像
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
for (int i = 0; i < s.Length; i++)
{
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
resultStr = resultStr + s[i].ToString("X2");
}
return resultStr;
}
API-接口安全签名(一)相关推荐
- 百度云 php api接口调用 签名计算
本文介绍百度智能云 计算签名 公共头 调用api接口调用: post请求示例 require "auth.php"; //此文件是百度云官网提供实例,下方可直接粘贴使用. // 第 ...
- php api接口验证签名错误,API常用签名验证方法(PHP实现)
使用场景 现在越来越多的项目使用的前后端分离的模式进行开发,后端开发人员使用API接口传递数据给到前端开发进行处理展示,在一些比较重要的修改数据接口,涉及金钱,用户信息等修改的接口如果不做防护验证,经 ...
- 调用快递鸟API接口DataSign 签名加密技术文档
2.1 关于签名 快递鸟和第三方电子商务公司系统进行对接,有一定的安全机制.采用 IP 认证加签名 的方式对接,具体方案如下: 1. 防止数据被篡改 在 POST 请求中会传递 5 个必须 (R) 参 ...
- 防止恶意调用API接口
1 / 验证码(最简单有效的防护),采用点触验证,滑动验证或第三方验证码服务,普通验证码很容易被破解 2 / 频率,限制同设备,同IP等发送次数,单点时间范围可请求时长 3 / 归属地,检测IP所在地 ...
- 如何防止别人恶意攻击调用API接口
1 / 验证码(最简单有效的防护),采用点触验证,滑动验证或第三方验证码服务,普通验证码很容易被破解 2 / 频率,限制同设备,同IP等发送次数,单点时间范围可请求时长 3 / 归属地,检测IP所在地 ...
- 多多客api_编写一个API接口,到底有多多多多多多多简单?
这里所介绍的API接口 这里所介绍的API接口,主要是指通过HTTP协议调用,提供给客户端应用调用,并以JSON格式返回数据的接口. 编写API接口的最佳方式 编写API接口代码,开发一款API接口, ...
- 瞧瞧别人家的API接口,那叫一个优雅
前言 在实际工作中,我们需要经常跟第三方平台打交道,可能会对接第三方平台API接口,或者提供API接口给第三方平台调用. 那么问题来了,如果设计一个优雅的API接口,能够满足:安全性.可重复调用.稳定 ...
- 【项目】API接口的加签和验签
近期工作学习中,遇到了几个对接第三方 API 的需求.对于提供接口的平台,提供的接口为什么能保证安全可靠呢?这其中又是如何防止第三方的恶意使用呢?如何鉴别调用者的身份呢? API 接口加密的原理 AP ...
- BIKI交易所API接口文档
入门指引 欢迎使用开发者文档,BiKi提供了简单易用的API接口,通过API可以获取市场行情数据.进行交易.管理订单 创建API Key 用户在 BiKi 注册账号后,需要在 [用户中心] - [AP ...
- API接口的安全设计验证:ticket,签名,时间戳
作者:一剑天门 cnblogs.com/dslx/p/14116294.html 概述 与前端对接的API接口,如果被第三方抓包并进行恶意篡改参数,可能会导致数据泄露,甚至会被篡改数据,我主要围绕时间 ...
最新文章
- 普华永道:AI规模化应用,基础知识先行
- 如何在Mac OSX Yosemite中将Ruby版本2.0.0更新到最新版本?
- java mqtt paho_使用eclipse paho在java端实现MQTT消息的收发(客户端与服务端实例)...
- Cocos2d-x 3.2 EventDispatcher事件分发机制
- 如何允许用户自定义UI
- backtrader期权回测框架
- java反射 虚拟机优化_面试官问我:Java反射是什么?我回答竟然不上来......
- mysql加锁后怎么解除_Mysql查看死锁与解除死锁的深入讲解
- 【转】性能测试,影响 TPS 的一些因素
- 2017.10.8 球形空间产生器sphere 思考记录
- 复制和删除文件夹所有内容
- VC中ComboBox控件用法详解
- 哈希值之逆序数与变进制
- Express框架学习笔记-app.locals对象
- PhpSpreadsheet设置单元格常用操作汇总
- 大规模MIMO多用户系统中的导频调度和预编码方法
- 美团iOS逆向工程分析
- 自己动手搭建聊天APP
- Tilemap瓦片地图
- html5动漫动态背景图片,简单动画-让你的背景图动起来!!!