Java/C#TCP通信-有符号/无符号字节pro

Java/C#TCP通信-有符号/无符号字节pro,java,c#,aes,unsigned,signed,Java,C#,Aes,Unsigned,Signed,我有一个Java应用程序,它通过TCP发送消息。另一个应用程序是C#,它侦听此消息并响应。问题是,JAVA字节是经过签名的,它加密并发送消息——加密消息中有许多负数。现在在C#端,我需要解密消息-因为C#字节是无符号的,我不确定发送的负数会发生什么。我的解密会失败吗?字节可以被视为数字(有符号或无符号)或8位的“数组” 当您加密某些数据并将其作为字节序列发送时,实际上发送的是一个位数组序列。这就是我们所接受的 当您手头有一个8位的数组时,您可以将其视为有符号或无符号数字。但将其视为一个或另一个

我有一个Java应用程序,它通过TCP发送消息。另一个应用程序是C#,它侦听此消息并响应。问题是,JAVA字节是经过签名的,它加密并发送消息——加密消息中有许多负数。现在在C#端,我需要解密消息-因为C#字节是无符号的,我不确定发送的负数会发生什么。我的解密会失败吗?

字节可以被视为数字(有符号或无符号)或8位的“数组”

  • 当您加密某些数据并将其作为字节序列发送时,实际上发送的是一个位数组序列。这就是我们所接受的

  • 当您手头有一个8位的数组时,您可以将其视为有符号或无符号数字。但将其视为一个或另一个的行为不会改变位模式

因此,如果您以字节序列的形式发送加密数据,那么发送方和接收方对字节的想法是否。。。作为数字。。。是一样的

我的解密会失败吗


没有。

试试看。加密算法通常只关注位模式;在解析纯文本之前,将它们解释为“有符号”或“无符号”字节是没有意义的。你是在自己构建字节吗?为什么不使用Protobuf、Thrift、Avro等跨语言二进制格式呢?