Browse Source

modify node communication protocol code

tags/1.0.0
zhangshuang 6 years ago
parent
commit
e681e8edc8
1 changed files with 10 additions and 1 deletions
  1. +10
    -1
      source/stp/stp-communication/src/main/java/com/jd/blockchain/stp/communication/connection/Connection.java

+ 10
- 1
source/stp/stp-communication/src/main/java/com/jd/blockchain/stp/communication/connection/Connection.java View File

@@ -21,6 +21,8 @@ import com.jd.blockchain.stp.communication.node.RemoteNode;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;

import java.util.Random;

/**
* 统一连接对象
* 该对象中有两个对象Receiver和Sender
@@ -144,8 +146,15 @@ public class Connection {
* @return
*/
private String loadKey(LoadMessage loadMessage) {
// key每次不能一致,因此增加随机数
byte[] randomBytes = new byte[8];
new Random().nextBytes(randomBytes);
byte[] loadBytes = loadMessage.toBytes();
byte[] keyBytes = new byte[loadBytes.length + randomBytes.length];
System.arraycopy(randomBytes, 0, keyBytes, 0, randomBytes.length);
System.arraycopy(loadBytes, 0, keyBytes, randomBytes.length, loadBytes.length);
// 使用Sha256求Hash
byte[] sha256Bytes = DigestUtils.sha256(loadMessage.toBytes());
byte[] sha256Bytes = DigestUtils.sha256(keyBytes);
// 使用base64作为Key
return Base64.encodeBase64String(sha256Bytes);
}


Loading…
Cancel
Save