Строка Java к bytearray назад для строкового представления

Короткий ответ (перед дальнейшим расследованием): нет, это не эквивалентно. Дата (Представляют toParse в виде строки) конструктор эквивалентен методу синтаксического анализа класса Дата (который также удерживается от использования)... И javadoc этого метода требования:

Примечание, что это немного отличается от интерпретации лет меньше чем 100, который используется в SimpleDateFormat.

, Если это - единственное изменение, я предполагаю, что можно продолжить этот путь.

8
задан NewJavaProgrammer 18 October 2009 в 19:49
поделиться

2 ответа

После того, как вы применили что-то вроде XOR, вы получите произвольные двоичные данные - , а не закодированную строку.

Обычный безопасный способ преобразования произвольного двоичного файла в текст должен использовать base64 - не пытайтесь просто создать из него новую строку. Итак, ваш процесс будет выглядеть примерно так:

  • Начните с простого текста в виде строки.
  • Кодируйте простой текст, используя UTF-8, UTF-16 или что-то подобное. Не используйте кодировку платформы по умолчанию или что-либо ограничивающее, например ASCII. Теперь у вас есть байтовый массив.
  • Примените шифрование. (XOR довольно слабый, но оставим это в стороне.) У вас все еще есть массив байтов.
  • Примените кодировку base64, чтобы получить строку.

Затем, когда вам нужно расшифровать ...

  • Примените декодирование base64 , чтобы преобразовать вашу строку в массив байтов.
  • Примените процесс двоичного дешифрования (например, снова XOR). У вас все еще есть байтовый массив.
  • Теперь декодирует этот байтовый массив в строку, например, с помощью new String (data, utf8Charset) , чтобы вернуть исходную строку.

Существуют различные варианты Доступны библиотеки Java base64, такие как этот класс в кодеке Apache Commons . (Вам нужны методы encodeToString (byte []) и decode (String) .)

Доступны различные библиотеки Java base64, например этот класс в кодеке Apache Commons . (Вам нужны методы encodeToString (byte []) и decode (String) .)

Доступны различные библиотеки Java base64, например этот класс в кодеке Apache Commons . (Вам нужны методы encodeToString (byte []) и decode (String) .)

19
ответ дан 3 November 2019 в 14:19
поделиться

1st of all, don't call XORing encryption. Seriously, the CipherOutputStream and CipherInputStream are there for you if you need to protect your data.

Thanks for stream chaining, you can have DataOutputStream -> CipherOutputStream -> ByteArrayOutputStream. This will get you properly encrypted bytes. Use the reverse APIs on the other end and you'll get your string back.

1
ответ дан 3 November 2019 в 14:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: