Что делать, когда DatatypeConverter.printHexBinary удваивает количество байтов в моем байтовом массиве? - PullRequest
1 голос
/ 07 апреля 2019

Я пытаюсь установить протокол связи с защищенным сервером. В какой-то момент сервер ожидает мой асимметрично зашифрованный байтовый массив симметричного ключа длиной 128 байтов, но после того, как я использую DatatypeConverter.printHexBinary, чтобы преобразовать массив байтов в строку, и после того, как я его использую, он удваивает количество байты в массиве. Я хочу знать, почему это происходит и как это решить?

Использование различных типов методов, которые разбирают byte [] в String, но сервер их не распознает.

Вот код, который я использую:

** Примечание. Открытый ключ отправляется сервером при отправке цифрового сертификата.

Для шифра:

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-байтовых кодов, // por eso el servidor no lo recibe. NO PUDIMOS ENCONTRAR LA РАЗОН.

// Сервер останавливается и показывает, что данные недопустимого размера блока не должны быть длиннее 128 байт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...