Necesito almacenar una lista de cadenas en un archivo al encriptarlo. Y luego descifro el contenido del archivo y los restauro a una lista de arreglos. Pero cuando descifro el contenido, hay bloques de 'Null' dentro del contenido. Sin bloques 'Null', el resto del texto es el mismo que he codificado.Encriptar y descifrar una lista de arreglos <String>
public static void encryptFile(List<String> moduleList, File fileOut) {
try {
OutputStream out = new FileOutputStream(fileOut);
out = new CipherOutputStream(out, encryptCipher);
StringBuilder moduleSet = new StringBuilder();
for (String module : moduleList) {
moduleSet.append(module + "#");
}
out.write(moduleSet.toString().getBytes(Charset.forName("UTF-8")));
out.flush();
out.close();
} catch (java.io.IOException ex) {
System.out.println("Exception: " + ex.getMessage());
}
}
public static List<String> decryptFile(File fileIn) {
List<String> moduleList = new ArrayList<String>();
byte[] buf = new byte[16];
try {
InputStream in = new FileInputStream(fileIn);
in = new CipherInputStream(in, decryptCipher);
int numRead = 0;
int counter = 0;
StringBuilder moduleSet = new StringBuilder();
while ((numRead = in.read(buf)) >= 0) {
counter++;
moduleSet.append(new String(buf));
}
String[] blocks = moduleSet.split("#");
System.out.println("Items: " + blocks.length);
} catch (java.io.IOException ex) {
System.out.println("Exception: " + ex.getMessage());
}
return moduleList;
}
he intentado con UTF-16 ya las cadenas están codificadas en Java en UTF-16, pero sólo lo hace peor la salida. Sus sugerencias serán apreciados ... Gracias
Nunca tome fotos del código fuente y publíquelas. Copie o pegue el código fuente en su pregunta o tómese el tiempo para escribirlo. – Jeffrey
El problema puede estar ubicado en la posición (242, 137) – Alex
@Jeffrey Si es posible, iría con copiar/pegar. Si eso no fuera posible porque estaba 'en el Kindle' o algo así, probablemente me demoraría en hacer una pregunta hasta que volviera a la máquina de desarrollo de escritorio. Demasiados errores se infiltran al (re) escribir el código. –