Android - Eliminación de bits rellenados en el descifrado

Estoy trabajando en una aplicación de seguridad utilizando mi propio método criptográfico personalizado y tengo un problema con el descifrado de mensajes.

Según la teoría, la entrada debe rellenarse para cumplir con el bit requerido para ejecutar el cifrado. Pero los bits acolchados se mantienen incluso después del descifrado.

Aquí hay un ejemplo:

input (before padding) : q
input (after padding)  : 113 0 0 0 0 0 0 0 (in Bytes)

Luego ejecuto un código:

bytes[] a = encrypt(input);
bytes[] b = decrypt(a);

String output = "";
output = new String(b, "UTF-8");

La salida en System.out.println está abajo:

b      : 113 0 0 0 0 0 0 0
output : q[][][][][][][]

No tengo idea de cómo quitar los bits rellenados. Actualmente estoy usando la siguiente función:

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;
}

Pero esta función solo funcionará si pongo la salida en una cadena. ¿Qué pasa si la salida es un archivo (digamos un archivo de imagen)? ¿Cómo eliminar los bits rellenados después del descifrado? Por favor ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta