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

如何开发一个接口_网站接口开发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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JAVA操作FTP(FTP工具类)

    JAVA操作FTP(FTP工具类)JAVAFTP操作导入commons-net<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.6</version></dependency>packagecom.my.ftp.test;importjava.io.File;imp

    2022年6月9日
    45
  • 30个优秀的网站导航菜单设计案例

    30个优秀的网站导航菜单设计案例导航是网站最重要的组成部分之一,一个有吸引力的导航能够引导用户浏览网站中的更多内容。导航的布局需要和网页内容完美的融合在一起,因此设计前需要设仔细分析网页结构。这篇文章收集了30个优秀的网站导航设计案

    2022年7月1日
    26
  • 【sshd】sshd_config 中 PermitRootLogin 的forced-commands-only的限定密钥登陆、限定执行命令

    【sshd】sshd_config 中 PermitRootLogin 的forced-commands-only的限定密钥登陆、限定执行命令主讲:PermitRootLogin的可选项众所周知,sshd_config是sshd的配置文件,其中PermitRootLogin可以限定root用户通过ssh的登录方式,如禁止登陆、禁止密码登录、仅允许密钥登陆和开放登陆,以下是对可选项的概括:参数类别 是否允许ssh登陆 登录方式 交互shell yes 允许 没有限制 没有限制 without-password 允许 除密码以外 没有限制 forced-commands-on

    2022年6月1日
    30
  • DOCKER学习笔记(MAC)

    DOCKER学习笔记(MAC)

    2021年5月11日
    106
  • 条件运算符用法「建议收藏」

    条件运算符用法「建议收藏」别人的书上看到一个简单题目,刚开始学C的小伙伴们应该很熟悉,还记得当年在软件实验室那会儿,入学考试全是这个,做到吐。打印图形以下图形:* *** ***** ******* ********* *********** ************* *********** ********* ******* ***** *** *  一般方法:两重循环,里面是两…

    2022年10月2日
    2
  • pycharm社区版安装步骤_pycharm安装教程2020社区版

    pycharm社区版安装步骤_pycharm安装教程2020社区版一、PyCharm的安装和配置1.1PyCharm社区版的安裝(windows系统)1.1.1、查看电脑配置:点击我的电脑右键选择属性![在这里插入图片描述](https://img-blog.csdnimg.cn/20201027105320621.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text…

    2022年8月27日
    4

发表回复

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

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