Мне удалось сгенерировать 256-битный ключ с CipherKeyGenerator
, но при преобразовании результата (в byte []
) в шестнадцатеричный код я получил 64 байта, что нормально, но при преобразовании этих байтов в биты у меня только 255 бит иЯ не знаю, откуда эта потеря.
Я пробовал несколько методов кодирования для переключения с байтового массива на шестнадцатеричный, но всегда с одним и тем же результатом.Я предположил связь с LSB или что-то в этом роде.
KeyGenerationParameters param = new KeyGenerationParameters(new SecureRandom(), 256);
CipherKeyGenerator KeyGen = new CipherKeyGenerator();
KeyGen.init(param);
byte[] KeyByte = KeyGen.generateKey();
String KeyHex = DatatypeConverter.printHexBinary(KeyByte);
System.out.println("Your key is : " + KeyHex);
Есть ли у кого-то идеи о том, что происходит?Спасибо за ваш совет!