Доброго времени суток.
У меня есть реализация алгоритма шифрования:
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
.
Например, написав приложение, которое может шифровать и дешифровать слова, у меня выйдет только шифровать слова этим алгоритмом. Это происходит из-за того, что при попытки дешифровать сообщение, у меня нет самого зашифрованного сообщения в нужном формате. Т.е мне нужно киким-то способом привести текст (с TextField "enter encoded message") в такой формат, чтобы можно было его правильно впихнуть в массив
m. Как можно это сделать ?