Arti-Jack
@Arti-Jack

Как правильно изменить алгоритм шифрования на основе XOR?

Доброго времени суток.

У меня есть реализация алгоритма шифрования:

String mesage = "Привет мир";
        byte[] m = Calculate.encrypt(mesage, "тостер");
        for (byte i : m) System.out.print(i);
        System.out.println();
        System.out.println(Calculate.decrypt(m, "тостер"));


public class Calculate {


    public static byte[] encrypt(String text, String keyWord)
    {
        byte[] arr = text.getBytes();
        byte[] keyarr = keyWord.getBytes();
        byte[] result = new byte[arr.length];
        for(int i = 0; i< arr.length; i++)
        {
            result[i] = (byte) (arr[i] ^ keyarr[i % keyarr.length]);
        }
        return result;
    }


    public static String decrypt(byte[] text, String keyWord)
    {
        byte[] result  = new byte[text.length];
        byte[] keyarr = keyWord.getBytes();
        for(int i = 0; i < text.length;i++)
        {
            result[i] = (byte) (text[i] ^ keyarr[i% keyarr.length]);
        }
        return new String(result);
    }

}


В целом алгоритм рабочий. Но есть одна значительная проблема, которая связана с массивом m.

f636dbf574fc41bd89fdc61b96731442.png

Например, написав приложение, которое может шифровать и дешифровать слова, у меня выйдет только шифровать слова этим алгоритмом. Это происходит из-за того, что при попытки дешифровать сообщение, у меня нет самого зашифрованного сообщения в нужном формате. Т.е мне нужно киким-то способом привести текст (с TextField "enter encoded message") в такой формат, чтобы можно было его правильно впихнуть в массив m. Как можно это сделать ?
  • Вопрос задан
  • 476 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Самый нормальный вариант - закодировать шифрованный текст в base64.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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