0 0

JAVA与C++应用SOCKET通讯转码加密问题3

最近公司应用做个通讯接口,用于计费,对方服务端可能是C程序吧,我们用JAVA进行通讯,效验值需要对该报文中校验值前面的所有内容进行计算后MD5加密。  问题来了,加密过程中发现不管怎么加密对方接收到的数据都不符合他们的加密值。看各位谁做过相关示例给点提示,总觉得跟无符号整型有进行加密有点关系。

长度(字节) 内容
4 类型=1
30 学号
10 金额
4 交易码
16 校验值


代码片段
			// 4 类型=4 32 学号 4 交易码 16 校验值
			out.writeInt(4);
			out.writeBytes(padString(userID, '0', 32, false));
			out.writeInt(1);
			System.out.println(buf.toByteArray().length);
			String m2 = MD5Security.MD5(new String(buf.toByteArray()));
			// String s2 = new String(m2.getBytes(), 0, 16);
			System.out.println(m2.substring(8, 24));
			out.writeBytes(m2.substring(8, 24));
			out.flush();
			byte[] b = buf.toByteArray();

			System.out.println("字符长度:" + b.length);

			byte[] revs = sendSocket(b, ip, port);

			logger.info("返回值:" + revs);

2012年1月14日 11:08

1个答案 按时间排序 按投票排序

0 0

可能是C程序吧


C一般用memcopy这类的函数来将网络数据放到自己的结构里面

首先你要确认对方的数据使用的大端还是小端模式

java不是本机还是网络字节序都是大端.而C的机器字节序和机器平台有关系,java和C的网络字节序则是双方协定的..一般C程序员会要求你用小段发送,以方便他直接memcopy

2012年1月14日 14:24

相关推荐

    Java和c++的Socket通信如何发送结构体

    本文将深入探讨如何在Java和C++之间通过Socket进行结构体的发送与接收。 首先,我们需要理解Socket通信的基本原理。Socket是一种在两台计算机之间建立连接的协议,它允许数据在网络中传输。在Java中,我们可以使用`...

    Java c++ socket通信

    Java和C++之间的Socket通信是跨语言网络编程的一个常见应用场景。Socket是计算机网络中的一个通信协议,它允许不同操作系统上的应用程序之间建立连接并交换数据。在这个场景中,Java作为客户端,C++作为服务端,两者...

    java c++互通的加密算法

    Java 和 C++ 之间的互通性在许多实际项目中都是至关重要的,特别是在跨平台的应用程序开发中。本主题探讨的是如何在 Java 和 C++ 中实现相同的加密算法,以便在这两个环境中可以无缝地交换加密数据。这里我们将专注...

    java使用socket和c++通信

    总之,Java使用非阻塞Socket与C++通信是一个涉及到多线程、网络编程、数据序列化和并发处理等多个技术领域的复杂过程。理解并熟练掌握这些知识点,对于构建高性能、高并发的跨平台网络应用至关重要。

    java与C++互通加解密

    本次项目由于服务器之间需要通信加密,java和c++,自己只懂java,因此和同事(c)在网上找了好几个都测试不行,我们修改了其中一个,已通过测试,上传的是最基础的,需要复杂化的可自行修改。为了以后方便他人,贡献...

    C++OpenCv利用Socket通讯类传输图片或者视频

    在IT领域,网络通信是至关重要的,特别是在...总的来说,结合C++的Socket编程和OpenCV的图像处理能力,我们可以构建起一个图片或视频的实时传输系统,这对于远程监控、视频会议、在线教育等领域都有广泛的应用价值。

    javaRSA加密C++RSA解密

    JAVA也是通过包来实现加密和解密的,那么我的C++是通过OPENSSL的库来实现的。 重点来到了:RSA使用过程 1、C++随机生成一对公钥和私钥 2、JAVA用公钥给明文打包形成密文 3、C++用私钥解密密文

    c/c++ 与java互通 AES加密解密,算法ECB

    一个vc6.0一个myeclipse,本帖是修复贴,原帖地址c/c++ 与java互通 AES加密解密,算法ECB/PKCS5PADDING http://download.csdn.net/download/wangsonghiweed/4328267 -来自CSDN,有童鞋反映有问题,我修复了

    收藏 Java c++通过des加密的结果不一样【已解决】

    ### Java与C++中DES加密不一致的问题及解决方案 #### 问题背景 在进行系统间的交互时,常常需要对敏感数据进行加密处理以确保数据的安全性。DES(Data Encryption Standard,数据加密标准)是一种广泛使用的对称...

    java c++ 通信之间的乱码解决方法

    Java和C++之间进行Socket通信时,可能会遇到乱码问题,主要是由于编码格式不一致导致的。Java默认使用UTF-8编码,而C++在Windows XP环境下可能使用GBK编码。解决这个问题的关键在于确保数据在传输过程中保持正确的...

    Linux下使用C++进行Socket编程

    Linux下使用C++进行Socket编程是一门涉及网络通信的高级技术。在Linux操作系统中,Socket编程通常采用C语言,因为传统的GNU C库提供了丰富的Socket API函数,但这些函数是面向过程设计的,没有面向对象的封装,使用...

    c++客户端和java(Netty)服务器端tcp通讯

    本话题将探讨如何使用C++客户端与Java(通过Netty框架)服务器端实现TCP通讯,并涉及数据序列化工具Protocol Buffers(protobuf)在两者之间的交互。 首先,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节...

    c++ 加密, java解密 互通,下载直接引用

    本文将深入探讨如何实现C++中的加密与Java中的解密过程,以达到数据的互通,并确保信息安全。 首先,让我们了解基础概念。加密是一种将明文数据转化为难以理解的形式(密文)的过程,而解密则是将密文还原为原始...

    基于HPSocket实现 socket 通讯 - 修正版 ( C# demo 、 C++ dll )

    本资源“基于HPSocket实现socket通讯 - 修正版 ( C# demo 、 C++ dll )”提供了一种实用的方法,帮助开发者高效地实现跨平台的网络通信功能。以下是关于HPSocket、Socket通讯以及其C#和C++实现的关键知识点: 1. **...

    使用C++语言实现基于JVMTI机制的 JAVA 代码 加密保护工具

    本工具是采用jvmti方式对Class文件进行加密,使用C++生成加密和解密库,先用加密库对Jar包进行加密,将加密后的Jar包及解密库文件发布出去,执行时候需要JVM引入解密库文件,解密后执行。c++的.dll文件和.so文件的...

    C++写的服务器与Java写的客户端通过Socket通信C++代码

    本示例探讨了如何使用C++实现服务器端,并用Java编写客户端,通过Socket进行通信。Socket编程是网络编程的基础,它允许两个不同的进程在同一个网络上进行通信。下面将详细介绍这个主题及其相关知识点。 1. **Socket...

    简单的 C++ MFC socket 通讯 适合初学者学习

    通过`socket()`函数创建一个socket句柄,然后使用`bind()`函数将socket与特定的IP地址和端口号绑定,`listen()`函数设置服务器为监听状态。当有客户端连接请求时,`accept()`函数会返回一个新的socket句柄,用于与...

    java与c++传文件程序

    在IT行业中,跨平台通信是常见的需求之一,Java和C++作为两种广泛应用的编程语言,它们之间的文件传输能力尤其重要。本项目实现了一个基于Socket的文件传输方案,其中Java作为服务端,C++作为客户端,使得Windows...

    C++ socket通讯

    - **绑定和监听**(服务器端):对于服务器端,需要调用CAsyncSocket的Bind函数将socket与本地端口关联,然后调用Listen函数开始监听连接请求。 - **连接**(客户端/服务器端):客户端使用CSocket的Connect函数...

    java和C++通信结构体发送

    标题中的“Java和C++通信结构体发送”指的是在Java和C++这两种不同的编程语言之间,通过网络进行通信时如何有效地传递结构体数据的问题。在跨语言通信中,由于二进制序列化和内存布局的差异,直接传输结构体会面临...

Global site tag (gtag.js) - Google Analytics