iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java接口签名如何实现
  • 694
分享到

Java接口签名如何实现

2023-06-28 10:06:11 694人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关Java接口签名如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、要求下图为具体要求二、流程线下分配appid和appsecret,针对不同的调用方分配不同的appid和apps

这篇文章给大家分享的是有关Java接口签名如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

一、要求

下图为具体要求

Java接口签名如何实现

二、流程

线下分配appid和appsecret,针对不同的调用方分配不同的appid和appsecret

  2、加入timestamp(时间戳),10分钟内数据有效

  3、加入流水号noncestr(防止重复提交),至少为10位。针对查询接口,流水号只用于日志落地,便于后期日志核查。 针对办理类接口需校验流水号在有效期内的唯一性,以避免重复请求。

  4、加入signature,所有数据的签名信息。

Java接口签名如何实现

三、实现

简单来说,调用者调用接口业务参数在body中传递,header中额外增加四个参数signature、appkey、timestamp、noncestr。

我们在后台取到四个参数,其后三个参数加上调用者分配的appSecret,使用字典排序并使用MD5加密后与第一个参数signature进行比对,一致既表示调用者有权限调用。

以下代码为接口验证签名的demo实现:

 //引用jackson依赖    @Autowired    private ObjectMapper objectMapper;    @Value("${appsecret}")    private String appSecret;        boolean checkSignature(PreInfoItem preInfoItem) throws JSONProcessingException, IllegalAccessException {        String signature="signature";        String appkey="appkey";        String timestamp="timestamp";        String noncestr="noncestr";        httpservletRequest request = ServletUtils.getRequest();        String headerSignature = request.getHeader(signature);        String headerAppkey = request.getHeader(appkey);        String headerTimestamp = request.getHeader(timestamp);        String headerNoncestr = request.getHeader(noncestr);//因为需要排序,直接使用TreeMap        Map<String,Object> parms=new TreeMap<>();        parms.put(appkey,headerAppkey);        parms.put(timestamp,headerTimestamp);        parms.put(noncestr,headerNoncestr);        Map<String, Object> strinGobjectMap = objectToMap(parms, preInfoItem);        String s = buildSignature(stringObjectMap);        //签名比对        if (s.equals(headerSignature)){            return true;        }        return false;    }    Map<String,Object> objectToMap(Map<String,Object> map,Object o){        Field[] declaredFields = o.getClass().getDeclaredFields();        for (Field field : declaredFields) {            field.setAccessible(true);            try {                if (field.getName() instanceof String){                    map.put(field.getName(),field.get(o));                }            }catch (IllegalAccessException e){                throw new CustomException("对象转map异常");            }        }        return map;    }  private String buildSignature(Map<String,Object> maps){      String s2;      try {            StringBuffer s = null;            String s1 = objectMapper.writeValueAsString(maps);            //添加appSecret            s.append(s1).append(appSecret);             s2 = DigestUtils.md5DigestAsHex(s.toString().getBytes());        }catch (jsonProcessingException e){            throw new CustomException("map转json异常");        }        return s2;    }

感谢各位的阅读!关于“Java接口签名如何实现”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Java接口签名如何实现

本文链接: https://www.lsjlt.com/news/318721.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java接口签名如何实现
    这篇文章给大家分享的是有关Java接口签名如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、要求下图为具体要求二、流程线下分配appid和appsecret,针对不同的调用方分配不同的appid和apps...
    99+
    2023-06-28
  • 接口签名如何使用Java实现
    这篇文章主要介绍了接口签名如何使用Java实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。java实现接口签名为了保证数据传输的安全性,跟其他系统进行数据交互时,双方应该约...
    99+
    2023-06-15
  • 接口签名怎么用Java实现
    java实现接口签名 为了保证数据传输的安全性,跟其他系统进行数据交互时,双方应该约定好密钥,把数据进行加密,接口签名,这样双方调用接口时,验证接口签名一致时就表明数据传输过程中没有...
    99+
    2024-04-02
  • 详解Java接口签名(Signature)实现方案
    目录一、要求二、流程三、实现大家好,我是程序员田同学! 今天上午收到一个需求,针对当前的系统开发一个对外开放的接口。 既然是对外开放,那么调用者一定没有我们系统的Token,就需要对...
    99+
    2024-04-02
  • php、go、python后端接口签名实现
    php实现 function makeSignature($args, $key){ if(isset($args['sign'])) { $oldSign = $args['sign']; unset(...
    99+
    2023-09-01
    linux 签名 接口安全
  • Vue+Springboot实现接口签名的示例代码
    1、实现思路 接口签名目的是为了,确保请求参数不会被篡改,请求的数据是否已超时,数据是否重复提交等。 接口签名示意图 客户端提交请求时,将以下参数按照约定签名方式进行签名,随后...
    99+
    2024-04-02
  • C#怎么实现快递鸟API接口签名
    本篇内容介绍了“C#怎么实现快递鸟API接口签名”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法调用的代码实现//电商IDstring&n...
    99+
    2023-06-03
  • Java如何实现接口限流
    小编给大家分享一下Java如何实现接口限流,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!RateLimiterGoogle开源工具包Guava提供了限流工具类RateLimiter,基于令牌桶算法实现。1.maven依赖:...
    99+
    2023-06-21
  • java接口限流如何实现
    在Java中实现接口限流可以使用以下几种方式: 计数器:维护一个计数器来统计每个接口的请求数量,当请求数量超过设定的阈值时,拒绝后...
    99+
    2023-10-25
    java
  • PHP接口签名校验
    项目中常用的API接口签名验证方法: 给app分配对应的appId、appKey 2. Sign签名,调用API 时需要对请求参数进行签名验证,签名方式如下: a. 按照请求参数名称将所有请求参数按照...
    99+
    2023-09-09
    php 前端 javascript
  • PHP SM2签名如何实现
    PHP SM2签名如何实现? SM2是一种基于椭圆曲线密码算法的公钥密码体制,包括数字签名、密钥交换和公钥加密三部分。本文将介绍如何使用PHP实现SM2签名。 1. 环境准备 在开始实现SM2签名之前...
    99+
    2023-08-31
    php 开发语言
  • java如何创建接口实现类
    在 Java 中,可以使用 `implements` 关键字来创建接口的实现类。具体步骤如下:1. 定义一个接口,在接口中声明需要实...
    99+
    2023-08-24
    java
  • 如何使用JAVA接口实现多实现类
    这篇文章主要介绍了如何使用JAVA接口实现多实现类,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。class NoteBook {  &...
    99+
    2023-06-02
  • python3如何使用Requests测试带签名的接口
    目录使用Requests测试带签名的接口一般制定一下规则针对某一get接口做实例说明Python 签名接口测试签名接口代码如下使用Requests测试带签名的接口 部分业务为了安全需...
    99+
    2024-04-02
  • java如何实现接口流量监控
    要实现接口流量监控,可以使用Java的Network Interface和TrafficStats类。首先,可以使用Network ...
    99+
    2023-09-15
    java
  • 如何在Java中实现LeetCode的接口?
    LeetCode是一个非常受欢迎的在线编程练习平台,它提供了大量的算法题目来帮助开发人员提高自己的编程技能。如果你想在Java中实现LeetCode的接口,这篇文章将会为你提供一些有用的指导和示例代码。 理解LeetCode接口 在Ja...
    99+
    2023-10-30
    git leetcode 接口
  • java如何实现单机接口限流
    这篇文章主要为大家展示了“java如何实现单机接口限流”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java如何实现单机接口限流”这篇文章吧。简单说就是设定某个接口一定时间只接受固定次数的请求,...
    99+
    2023-06-21
  • 详解PHP接口签名验证
    目录概览常用验证单向散列加密对称加密非对称加密密钥安全管理接口调试工具在线接口文档扩展小结概览 在设计签名验证的时候,一定要满足以下几点: 可变性:每次的签名必须是不一样的...
    99+
    2024-04-02
  • Java中如何实施接口
    这篇文章主要介绍了Java中如何实施接口,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在封装与接口中,private关键字封装了对象的内部成员。经过封装,产品隐藏了内部细节,...
    99+
    2023-06-02
  • PHP-RSA2签名验证如何实现
    本篇内容介绍了“PHP-RSA2签名验证如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PHP RSA2 签名算法什么是RSA2?RS...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作