Как мне зашифровать / расшифровать строку, используя другую строку в качестве пароля?

Я делаю простую программу, которая берет текст, введенный в текстовое поле, и пароль, который находится в другом текстовом поле, затем выполняет какое-то простое шифрование и сохраняет его в файл. . После этого пользователь должен иметь возможность снова открыть файл и указать пароль, который использовался для его шифрования, и он должен выдать исходный текст.

Сейчас я беру веревочку. Разделите его на массив символов, затем проделайте то же самое с паролем. После этого я беру пароль, конвертирую все эти символы в целые числа, нахожу среднее значение для всех из них и использую его как смещение к символам в исходном тексте. Примерно так:

textChars[1]= (char)((int)textChars[1]+offset);

Затем я могу сделать обратное для зашифрованной строки:

encryptedChars[1]= (char)((int)encryptedChars[1]-offset);

Проблема в том, что символы имеют разные значения на разных платформах, поэтому иногда смещение превращает символ в какое-то сумасшедшее число (например, отрицательное значение) что превратит символ в вопросительный знак.

Я посмотрел на криптографическую библиотеку в стандартном API Java, но меня смущает, как работает ключ, если он генерируется случайным образом каждый раз, когда я запускаю программу.

Мне нужны две функции, которые выглядят как String encrypt (String text, String Password) , которая выводит текст, зашифрованный паролем в качестве ключа для его расшифровки, и String decrypt ( String encryptedText, String Password) , который будет выдавать исходный текст (или тарабарщину, если пароль является нежелательным)

Любая помощь действительно приветствуется, это действительно просто личный проект, поэтому мне не нужно какое-либо необычное шифрование методы.

6
задан help-info.de 19 February 2017 в 12:29
поделиться