@axtavt, если я разделю свою 56-битную двоичную строку в массив байтов с прямым порядком байтов, msb любого байта может быть '1', однако тип данных байта не допускает этого (его диапазон от -2 ^ 7-1 до 2 ^ 7 -1). Является ли приведение типов правильным решением? Я хочу знать, что если я наберу приведение этих данных в байты, я все еще буду использовать тот же ключ, который я хотел использовать?

я есть 56-битная двоичная строка, которую я хочу использовать в качестве секретного ключа для шифрования DES.

Я нашел следующий код на веб-сайте JCA docs

byte[] desKeyData = { (byte)0x01, (byte)0x02, (byte)0x03, 
(byte)0x04, (byte)0x05, (byte)0x06, (byte)0x07, (byte)0x08 };
DESKeySpec desKeySpec = new DESKeySpec(desKeyData);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);

Однако это использует 8 байтов для ключа (вместо 7). Не ясно, соответствует ли desKeyData [0] младшему значащему байту или старшему значащему байту. Кроме того, возможно ли использовать 56-битную строку напрямую для генерации байтового массива, который можно использовать для этой цели?

Ответы на вопрос(2)

Ваш ответ на вопрос