• 接口鉴权,提供给第三方调用的接口,进行sign签名


    //场景:公司要跟第三方公司合作,提供接口给对方对接,这样需要对接口进行授权,不然任何人都可以调我们公司的接口,会导致安全隐患:
    
    思路: 在每个接口请求参数都带上ApiKey 和sign签名:
     我们在对接前,给对方提供一个ApiKey 和密码secrect,这2个值随便自己定义,只要双方都约定好就行了:
    
    对方要做的事情: 对请求参requestDTO 除sign签名字段外,转成JSON字符串,
    然后前后拼上secrect,再MD5加密得到sign签名:
    伪代码:
         String reqStr=JSON.toJSONStirng(requestDTO);
         StringBuilder sb = new StringBuilder();
            sb.append(BeeBoxConstant.SECRET);
            sb.append(json);
            sb.append(BeeBoxConstant.SECRET);
            String sign = Md5Util.getMd5(sb.toString());
          requestDTO.setSign(sign);
    注意:requestDTO不能将密码也带过去
    
    我们要做的事情:
    
    拿到对方请求参数:requestDTO
      获取sign值和apiKey:
      String sign=requestDTO.getSign();
      String apiKey=requestDTO.getApiKey();
      通过apikey去获得密码secrect,因为apikey和密码是我们提供的,所以肯定知道在哪里获取;
    
      之后请求对象设置sign值为null:
      requestDTO.setSign(null);
      转成JSON,然后按同样的方式生成sign签名:
    
     String reqStr=JSON.toJSONStirng(requestDTO);
         StringBuilder sb = new StringBuilder();
            sb.append(BeeBoxConstant.SECRET);
            sb.append(json);
            sb.append(BeeBoxConstant.SECRET);
            String sign2 = Md5Util.getMd5(sb.toString());
      比较对方传过来的sign值和我们计算得到的sign2是不是一致,一致签名验证就通过,不一致签名就是失败;    
  • 相关阅读:
    怎样开始学日语
    转 送给日语初学者的寄语
    分享一个flash播放音乐的类
    日语网址
    北京奥运会门票价格一览表
    上班防沉迷系统
    ActionScript 3.0 概要
    Actionscript 3学习资源
    客户导入后需要Update的字段
    ORA01219
  • 原文地址:https://www.cnblogs.com/yangxiaohui227/p/11165757.html
Copyright © 2020-2023  润新知