JAVA知识点-----与C项目进行网络通讯------数据加密篇

来源:互联网 发布:生物信息 python 编辑:程序博客网 时间:2024/05/05 23:44

在与具有联网功能的嵌入式设备通讯时,如果使用UDP,普通明文数据并没什么需要特别注意的。

但是当需要传送0x20-0x7E之外的数据时,如果直接用String a  = new String(byteValue);那么接收端,是得不到正确的加密数据的。不但如此,在获取数据时,直接使用Byte a[] = stringValue.getBytes,同样也不会得到想要的数据。

原因:java的string内置有标准数据转换格式,在未指定情况下,会将数据自动转换为默认码。

解决办法:使用ISO-8859-1。

byte[] sndb = send.getBytes("ISO-8859-1");

crys = new String(cryb,"ISO-8859-1");

这种标准,会将byte的8位直接填充到string中,不会转码,这样就和C的数据思想相同了。

需要注意的是,在其他没有加密数据需要处理的时候,绝对不要在JAVA中使用非默认格式,否则日后移植程序将会因为平台的不同而需要大量重写代码。


0 0