Java 当DatatypeConverter.printHexBinary将my bytearray中的字节数增加一倍时,该怎么办?

Java 当DatatypeConverter.printHexBinary将my bytearray中的字节数增加一倍时,该怎么办?,java,arrays,string,server,client,Java,Arrays,String,Server,Client,我正试图建立一个与安全服务器的通信协议。在某种程度上,服务器会等待我的长度为128字节的非对称加密对称密钥字节数组,但在我使用DatatypeConverter.printHexBinary将字节数组转换为字符串后,在我使用它后,数组中的字节数会翻一番。我想知道为什么会发生这种情况,以及如何解决它 使用不同类型的方法将字节[]解析为字符串,但服务器无法识别它们 以下是我正在使用的代码: **注意:公钥由服务器在发送数字证书时发送 对于密码: private static byte[] cifra

我正试图建立一个与安全服务器的通信协议。在某种程度上,服务器会等待我的长度为128字节的非对称加密对称密钥字节数组,但在我使用DatatypeConverter.printHexBinary将字节数组转换为字符串后,在我使用它后,数组中的字节数会翻一番。我想知道为什么会发生这种情况,以及如何解决它

使用不同类型的方法将字节[]解析为字符串,但服务器无法识别它们

以下是我正在使用的代码:

**注意:公钥由服务器在发送数字证书时发送

对于密码:

private static byte[] cifradoAsimetrico(SecretKey key, PublicKey publicKey) {
    byte[] cipheredText;
    try {           
        Cipher cipher = Cipher.getInstance(asimetrico);         
        byte[] clearText = key.getEncoded();            
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        cipheredText = cipher.doFinal(clearText);
        return cipheredText;
    } catch (Exception e) {
        System.out.println("[Exception] Method cifradoAsimetrico( ): " + e.getMessage());
        return null;
    }
}
对于通信协议:

keyGenerator = KeyGenerator.getInstance(simetrico,new BouncyCastleProvider());
keyGenerator.init(128);
    desKey = keyGenerator.generateKey();

byte[] llaveCifrada = cifradoAsimetrico(desKey, publicaServidor);

System.out.println("Tamaño cifrada: " + llaveCifrada.length);
    String llaveCifradaHexa = DatatypeConverter.printHexBinary(llaveCifrada);

    System.out.println("Tamaño hexa: "+llaveCifradaHexa.getBytes().length);

    socketPrintWriter.println(llaveCifradaHexa);
//在256个字节的环境中,所有的问题都会被解决, //这是我的服务。没有普迪莫斯·拉兹恩

//服务器在此停止并显示illegalblocksizeexception数据长度不得超过128字节