前言

  相信又不少小伙伴在对接第三方接口时遇到过这种情况:参数、排序、加密方式都按照接口文档进行处理了,可就是签名不通过,然后开始怀疑是不是参数漏了?参与加密的参数不对?还是加密方式有问题?最后一顿操作还是签名不通过

遇到这种情况怎么办呢?面向百度编程没有方向基本找不到解决方式,那就@一下对接人吧,然后你就会得到一个回复‘参数没啥问题,签名验证不通过,建议检查签名算法’。哔!

  当陷入困境的时候再看看提供的demo吧(有的话,没有demo的那就只能继续苦逼研究了),如果你会Java说不定还能想到吧demo做成一个服务用来调用(见过这么干过的);

真相

  真相是什么呢?如果没找对方向,怎么都想不到…… 那就是Byte,Byte即字节,由8位的二进制组成,然而问题就在二进制的符号位,区别如下:

  C# Byte 无符号位,值域为[0~255],Java Byte 有符号位,值域为[-128~127]

转换

  知道了问题所在,就很好解决了,我们知道了C#将Byte的符号位用于计算了,那么只需要将C#的Byte的符号位的值减去即可得到Java的Byte,而符号位在最高位,即2^8=256,也就是说C# Byte中的每一位如果大于等于128就减去256,否则就取当前值,这样就得出了Java的Byte值。

  C# ByteTo Java Byte

if(C#Byte[i]>=128)
{
var newByte=C#Byte[i]-256;
}

  

  Java Byte To C# Byte

if(JavaByte[i]<0)
{
var newByte=JavaByte[i]+256;
}

 总结

  由于C#的Byte是无符号类型,取值0~255,Java的Byte类型是有符号类型,取值位-128~127,当获取到Byte后,需要判断Byte有无符号,有符号转无符号就将小于0的值+256;无符号转有符号就将大于127的值-256;

.Net对接Java接口加密不通过?的更多相关文章

  1. php对接java接口

    1.php curl 传参形式 public function send($url,$postData){ $ch = curl_init(); $headers = array("Cont ...

  2. C#与Java AES 加密解密

    参考文档:https://www.cnblogs.com/xbzhu/p/7064642.html 前几天对接Java接口,需要C#加密参数,Java解密.奈何网上找了一堆大同小异的加解密方法都跟Ja ...

  3. 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密

    你真的了解字典(Dictionary)吗?   从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...

  4. 对接第三方平台JAVA接口问题推送和解决

    前言 本节所讲为实际项目中与第三方对接出现的问题最后还是靠老大解决了问题以此作为备忘录,本篇分为三小节,一小节解析Java加密接口数据,二小节解析XML文件需注意问题,最后一节则是请求Java Soa ...

  5. PHP DES-ECB加密对接Java解密

    最近公司有个业务,需要对接第三方接口,但是参数是需要加密的,对方也只提供了一个java的demo,在网上到处搜索,没有找到直接就能用的方法,后来还是跟公司的Android工程师对接出来的,在这里记录一 ...

  6. bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能

    xmlrpc .  https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很 ...

  7. java接口对接——别人调用我们接口获取数据

    java接口对接——别人调用我们接口获取数据,我们需要在我们系统中开发几个接口,给对方接口规范文档,包括访问我们的接口地址,以及入参名称和格式,还有我们的返回的状态的情况, 接口代码: package ...

  8. php 对接java短信接口带有英文逗号就无法通过

    在对接短息接口时,对方是java接口,要求content两次编码 短信内容(Content)发起请求前必须进行URL转码.例如对于短信内容为“中文短信abc”,转码过程如下(java语言): Stri ...

  9. php-app开发接口加密

    自己平时工作中用到的一套接口加密规则,记录下来以后用: /** 2 inc 3 解析接口 客户端接口传输规则: 1.用cmd参数(base64)来动态调用不同的接口,接口地址统一为 http://a. ...

  10. java接口签名(Signature)实现方案续

    一.前言 由于之前写过的一片文章 (java接口签名(Signature)实现方案 )收获了很多好评,此次来说一下另一种简单粗暴的签名方案.相对于之前的签名方案,对body.paramenter.pa ...

随机推荐

  1. Uniapp input的v-model问题

    前情 uni-app是我很喜欢的跨平台框架,它能开发小程序,H5,APP(安卓/iOS),对前端开发很友好,自带的IDE让开发体验也很棒,公司项目就是主推uni-app. 坑位 最近在做一个input ...

  2. VLC web(http)控制 (2) 状态获取

    VLC 状态通过http://127.0.0.1:8080/requests/status.xml获取.(IP地址自行更换) 内容如下: <root> <fullscreen> ...

  3. Google Chrome谷歌浏览器离线/绿色版本安装与彻底卸载

    一.离线安装 1.下载官方最新安装包安装 直接下载链接 Windows 32 位最新稳定版: https://dl.google.com/tag/s/installdataindex/update2/ ...

  4. Flutter (2.5) - A splash screen was provided to Flutter, but this is deprecated

    Flutter (2.5) - A splash screen was provided to Flutter, but this is deprecated 升级到Flutter 2.5 版本后,启 ...

  5. Qt编写地图综合应用53-省市轮廓图下载

    一.前言 Qt的浏览器控件的交互机制非常方便,所以在在线地图的时候可以对每个区域的经纬度坐标集合发给Qt程序,让他去存储到文件,在实际的测试过程中,发现有部分地图有多个封闭的曲线的,比如散落的岛屿和飞 ...

  6. Qt编写的项目作品25-硬件综合应用(热敏打印+身份证+短信猫)

    一.功能特点 (一).串口热敏打印 标准热敏打印协议解析,无依赖,支持任意系统. 可打印各种文字信息比如访客单.报警信息等. 可打印条形码即一维码. 可打印二维码,设置二维码尺寸. 支持多线程打印图片 ...

  7. SpringBoot集成swagger后出现: Failed to start bean ‘documentationPluginsBootstrapper‘的解决方法

    SpringBoot集成swagger后出现: Failed to start bean 'documentationPluginsBootstrapper'的编译错误: org.springfram ...

  8. Python设计模式(第2版)中文的pdf电子书

    Python设计模式(第2版)中文的pdf电子书下载地址:百度云盘,提取码:dmem

  9. 即时通讯技术文集(第32期):IM开发综合技术合集(Part5) [共12篇]

    为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第32 期. [- 1 -] IM开发干货分享:如何优雅的实现大量离线消息的可靠投递 [链接]  ...

  10. 【狂神说Java】Java零基础学习笔记-预科

    [狂神说Java]Java零基础学习笔记-预科 预科01:学习准备:博客 博客,英文名为Blog,它的正式名称为网络日记 为什么要写博客? 需要总结和思考.有时候我们一直在赶路,却忘了放慢脚步 提升文 ...