Я пытаюсь сделать такие преобразования, но у меня есть небольшая проблема.
Допустим, у меня есть следующая строка:
String in = "1234567890123456";
Затем я преобразовываю ее в ByteArrayInputStream следующим образом:
ByteArrayInputStream bais = new ByteArrayInputStream(in.getBytes("UTF-8"));
У меня также есть:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Затем я делаю свое шифрование:
ch.encrypt(bais, baos);
Так что теперь у меня есть мой "вывод" в baos
.Когда я делаю такую вещь:
byte[] b2 = baos.toByteArray();
int[] i2 = toUnsignedIntArray(b2);
writeIntegersAsHex(i2);
где (я знаю, что это не самый элегантный способ, но только для тестирования):
public static void writeIntegersAsHex(int[] integers) {
int height = integers.length;
for (int i = 0; i < height; i++) {
System.out.print(Integer.toHexString(integers[i]) + ",");
}
System.out.println("");
}
Я получаю такой вывод:
d1,68,a0,46,32,37,25,64,67,71,17,df,ee,ef,2,12,
И этот вывод правильный, потому что когда я обрабатываю файл, который содержит ту же строку, что и in
, этот вывод совпадает.Но я не могу получить правильную строку из baos
.
Пожалуйста, не спрашивайте меня, почему я делаю это так, потому что это был не мой звонок.Я студент, и это один из примеров.
Алгоритм (кстати, aes128) работает нормально, с файлами, но я не могу получить строку для inputtream и outputtream для работы строки.