diff --git a/src/main/java/racal/sunyard/main/SydApi4j.java b/src/main/java/racal/sunyard/main/SydApi4j.java index 3a66a14..5cd7f72 100644 --- a/src/main/java/racal/sunyard/main/SydApi4j.java +++ b/src/main/java/racal/sunyard/main/SydApi4j.java @@ -51,6 +51,7 @@ import java.net.Socket; import java.net.SocketAddress; import java.net.SocketTimeoutException; import java.nio.ByteBuffer; +import java.nio.ByteOrder; import java.nio.charset.Charset; import java.security.NoSuchProviderException; import java.security.Security; @@ -6923,18 +6924,18 @@ public class SydApi4j implements SydApi { bb.put("7F".getBytes()); bb.put((byte) dataType); // 数据包标志 if ( 2 == dataType ) { // 公钥 - bb.put(ByteUtil.shortToBytes((short) publicKey.length)); + bb.put(ByteUtil.shortToBytes((short) publicKey.length, ByteOrder.BIG_ENDIAN) ); bb.put(publicKey); } if ( 1 == dataType ) { // 数据 - bb.put(ByteUtil.shortToBytes((short) pOrgData.limit())); + bb.put(ByteUtil.shortToBytes((short) pOrgData.limit(), ByteOrder.BIG_ENDIAN)); bb.put(pOrgData); bb.put(ByteUtil.intToBytes(idx)); } if ( 3 == dataType) { // 仅数据长度 - bb.put( ByteUtil.shortToBytes((short) (63*1024)) ); - bb.put( ByteUtil.intToBytes(idx)); + bb.put( ByteUtil.shortToBytes((short) (63*1024), ByteOrder.BIG_ENDIAN) ); + bb.put( ByteUtil.intToBytes(idx, ByteOrder.BIG_ENDIAN)); } @@ -6965,7 +6966,7 @@ public class SydApi4j implements SydApi { int isLast = bb.get(); byte[] dataLenArr = new byte[2]; bb.get(dataLenArr); - int dataLen = ByteUtil.bytesToInt(dataLenArr); + int dataLen = ByteUtil.bytesToInt(dataLenArr, ByteOrder.BIG_ENDIAN); // byte[] data = new byte[dataLen]; // bb.get(data); ByteBuffer slice = ByteBufferUtil.sliceAndConsume(bb, dataLen); @@ -7058,17 +7059,17 @@ public class SydApi4j implements SydApi { bb.put((byte) dataType); if (dataType == 2) { // 私钥 - bb.put(ByteUtil.shortToBytes((short) privateKey.length)); + bb.put(ByteUtil.shortToBytes((short) privateKey.length, ByteOrder.BIG_ENDIAN)); bb.put(privateKey); } if (dataType == 1) { // 密文块 - bb.put(ByteUtil.shortToBytes((short) pCipherData.limit())); + bb.put(ByteUtil.shortToBytes((short) pCipherData.limit(), ByteOrder.BIG_ENDIAN)); bb.put(pCipherData); - bb.put(ByteUtil.intToBytes(idx)); + bb.put(ByteUtil.intToBytes(idx, ByteOrder.BIG_ENDIAN)); } if (dataType == 3) { // 请求明文块 - bb.put(ByteUtil.shortToBytes((short) (63 * 1024))); - bb.put(ByteUtil.intToBytes(idx)); + bb.put(ByteUtil.shortToBytes((short) (63 * 1024), ByteOrder.BIG_ENDIAN)); + bb.put(ByteUtil.intToBytes(idx, ByteOrder.BIG_ENDIAN)); } // 填写总长度(长度字段本身不包含在内) @@ -7095,7 +7096,7 @@ public class SydApi4j implements SydApi { int isLast = bb.get(); byte[] dataLenArr = new byte[2]; bb.get(dataLenArr); - int dataLen = ByteUtil.bytesToInt(dataLenArr); + int dataLen = ByteUtil.bytesToInt(dataLenArr, ByteOrder.BIG_ENDIAN); ByteBuffer slice = ByteBufferUtil.sliceAndConsume(bb, dataLen); return new MutiReturn7(retCode, isLast, slice); } else {