Я пишу Java-приложение, которое может «шифровать» и, следовательно, «дешифровать» любой двоичный файл.
Я только начинающий в области "криптографии", поэтому я хотел бы написать очень простое приложение для начала.
Для чтения исходного файла я, вероятно, использовал бы класс java.io.FileInputStream
, чтобы получить "массив байтов" byte originalBytes[]
файла.
Тогда я, вероятно, использовал бы какой-нибудь очень простой шифр, например " сдвинуть каждый байт на 1 ", а затем я бы получил "зашифрованные" байты byte encryptedBytes[]
, и, скажем, я бы также «пароль» для него, например «123456789».
Затем, когда кто-то хочет «расшифровать» этот файл, он должен сначала ввести пароль («123456789»), а после этого файл может быть расшифрован (таким образом, « смещает каждый байт на 1 » ") и, следовательно, сохраняется в выходной файл через java.io.FileOutputStream
.
Мне просто интересно, как «сохранить» информацию о пароле в зашифрованном файле, чтобы приложение расшифровки узнало, равны ли введенный пароль и «настоящий» пароль?
Возможно, было бы глупо добавлять пароль (например, порядковые номера ASCII букв пароля) в начало файла (перед зашифрованными данными).
Поэтому мой главный вопрос как сохранить информацию о пароле в зашифрованном файле ?