拆字

为什么要拆字?怎么拆?

拆字,字面意思,拆字节,把字节拆开,一个字节总共才8位,拆开的话就拆成2个四位,那么四个比特位的表示范围是多少呢,0-15

 

拆字一般是+030,目的是把数字转成此数据对应的字符(可以对照ASCII表来看),把不可见字符转为可见字符。那么0-15再加上0x30的话,其范围是48-63,所以一个字节要拆成两位,两个字接要拆成四位。

 

   例如,我有字节数据02 03要传往服务器,先把其加密,假设加密之后的数据为03 02,直接往服务器传,这样肯定不行。为了避开数据包的头02和数据包结尾03,所以要拆字,把03 02通过方法bytesToHexStr转为hexstring 30333032,此hexstring getBytes之后会得到字节数组 30 33 30 32,这样再往服务器传,此时,传输的过程中就不会和头尾的 0203冲突了。传输过去之后,先要把得到的字节数组 30 33 30 32通过new string的方式得到hexstring字符串30333032,再把此hexstring通过方法HexStringToBytes转为字节数组03 02。到此,服务器就得到了正确的数据了。

 

注意:可以看到bytesToHexStr得到的string长度是原来的长度两倍了,所以服务器端接到数据之后,必须通过HexStringToBytes把数据长度减半,这样才能得到03 02 ,再进行解密得到02 03


你可能感兴趣的:(拆字)