Android - удаление битов в расшифровке
Я работаю над приложением безопасности, используя собственный метод криптографии, и у меня возникла проблема с расшифровкой сообщений.
Согласно теории, вход должен быть дополнен, чтобы соответствовать требуемому биту для выполнения шифрования. Но дополненные биты остаются даже после расшифровки.
Вот пример:
input (before padding) : q
input (after padding) : 113 0 0 0 0 0 0 0 (in Bytes)
Затем я выполняю некоторый код:
bytes[] a = encrypt(input);
bytes[] b = decrypt(a);
String output = "";
output = new String(b, "UTF-8");
Вывод на System.out.println ниже:
b : 113 0 0 0 0 0 0 0
output : q[][][][][][][]
Я понятия не имею, как удалить мягкие биты. В настоящее время я использую функцию ниже:
public String processOutput(String dtxt){
String result = "";
int l = dtxt.length();
for(int i=0;i<l-16;i++) result = result + dtxt.charAt(i);
for(int i=l-16;i<l;i++){
if((long)dtxt.charAt(i)!=0){
result = result + dtxt.charAt(i);
}
} return result;
}
Но эта функция будет работать, только если я помещу вывод в строку. Что, если на выходе будет файл (скажем, файл изображения)? Как убрать биты после расшифровки? Пожалуйста помоги.