如何开发一个接口_网站接口开发

如何开发一个接口_网站接口开发1、客户端请求加密、服务端请求解密2、防止重复提交一般是在数据库加状态,在status=0的状态下更新,更新完状态变为1,这样就可以防止重复提交———————————————————————————签名基本原理是通过key/secret的实现:1,服务器……

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1、客户端请求加密、服务端请求解密

2、防止重复提交

     一般是在数据库加状态,在 status=0 的状态下更新,更新完状态变为1,这样就可以防止重复提交

———————————————————————————

签名基本原理是通过 key/secret 的实现:
1, 服务器负责为每个客户端生成一对 key/secret ( key/secret 没有任何关系,不能相互推算),保存,并告知客户端。
2, 当客户端调用 api 时,根据某种规则将所有请求参数串联起来并用 secret 生成签名 sign 。
3, 将 sign 和 key 一起放进请求参数对服务器进行调用。(注意 secret 不要传)
4, 服务端收到请求,根据 key 去查 secret ,然后用同样的算法,验证签名。
5, 为避免重放攻击,可加上 timestamp 参数,指明客户端调用的时间。服务端在验证请求时若 timestamp 超过允许误差则直接返回错误。

———————————————————————————————————

签名算法过程:

1.对除签名外的所有请求参数按key做的升序排列,value无需编码。
 (假设当前时间的时间戳是12345678)

例如:有c=3,b=2,a=1 三个参,另加上时间戳后, 按key排序后为:a=1,b=2,c=3,_timestamp=12345678。

2 把参数名和参数值连接成字符串,得到拼装字符:a1b2c3_timestamp12345678

3 用申请到的appkey 连接到接拼装字符串头部和尾部,然后进行32位MD5加密,最后将到得MD5加密摘要转化成大写。

示例:假设appkey=test,md5(testa1b2c3_timestamp12345678test),取得MD5摘要值 C5F3EB5D7DC2748AED89E90AF00081E6 。

————————————————————————————

 总结:

  1. 接口调用方和接口提供方约定好统一的参数加密算法
  2. 接口调用方在调用时把加密后的_sign放在参数中去请求接口
  3. 接口提供方接到响应后,判断时间戳是不是在有效时间内(这个时间间隔根据你的安全范围可以是10分钟,5分钟,20秒等,过期失效,前提是需要保证接口提供方和调用方的服务器时间为准确的网络同步时间)
  4. 把参数中除了_sign以外的参数进行加密,然后把加密结果和传过来的_sign比较,相同则执行调用请求。

     md5加密

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192351.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • random函数用法笔记

    random函数用法笔记1.导入random模块importrandom2.生成(n,m)之间的随机整数>>>importrandom>>>a=random.randint(1,10)#1<=a<=10且n,m大小必须n<m>>>print(a)3>>>3.取0-1之间随机浮点数…

    2022年5月20日
  • 西天取经意义初探_show concern about

    西天取经意义初探_show concern about构建DirectShow应用程序  本章节描述构建DirectShow应用程序所需的头文件和库。WindowsSDK中提供了最新的DirectShow头文件和库。头文件    所有的DirectShow应用程序都需要Dshow.h头文件,一些DirectShow接口可能还需要额外的头文件。库文件    调试版和发布版都是用相同的.lib文件。 F…

    2022年10月12日
  • dsp28335复位电路_28335串口不能中断

    dsp28335复位电路_28335串口不能中断0前言本期实验目标:采用外部中断方式响应按键触发,实现LED电平反转。外部中断是DSP十分常用的功能,通常用来响应一些控制操作,比如判断按键是否按下,传感器是否接收到信号等等。那么通过该例程,大家则可以快速学会使用外部中断的功能!本节仍然将分为硬件部分、软件部分和实验展示三个方面进行介绍。1硬件部分DSP28335支持XINT1-XINT7和XNMI共8路外部中断源,其中中断源XINT1/2和XNMI可以设定为从GPIO端口A的任意一个管脚输入,即GPIO0-GPIO31。而XINT3/4/5/

    2022年9月6日
  • Uart接口TTL电平详解

    Uart接口TTL电平详解Uart接口的详细解释我面试的时候一般喜欢问应聘者一个问题:UART与RS232/RS485的区别与联系?很多人对于这个问题答得都不是很好。还有些人压根就没有想过这个问题,一直认为他们是同一个东西,就是咱们俗称的串口。我刚入嵌入式的大门时,对这个问题也困惑过很久,后来终于弄明白了。跟大家一起分享一下吧。简单来说,区别在于UART是一种接口,而RS232/RS485是一…

    2022年9月14日
  • Spring的基本业务流程与类的多实现

    Spring的基本业务流程与类的多实现Spring的基本业务流程与类的多实现

    2022年4月22日
  • redis避免缓存击穿_redis防止缓存击穿

    redis避免缓存击穿_redis防止缓存击穿Redis解决缓存穿透和缓存击穿的工具类

    2022年8月31日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号