Clases de cifrado y descifrado de cadenas y MD5 comúnmente utilizadas en Java
Los programadores de Java solemos utilizar algunas clases de herramientas al desarrollar proyectos. Hoy compartiré dos de mis clases de herramientas que puedes usar en tus proyectos.
1. Clase de herramienta de cuerda
paquete com.itjh.javaUtil;importar java.io.ByteArrayInputStream;importar java.io.File;importar java.io.FileInputStream;importar java.io.FileOutputStream;importar java.io.IOException;importar java.io.InputStream;importar java.io.OutputStream;/** * Clase auxiliar para operaciones relacionadas con archivos. * * @author Song Lijun* @fecha 24 de junio de 2014*/public class FileUtil {private static final String FOLDER_SEPARATOR = "/";private static final char EXTENSION_SEPARATOR = '.';/** * Función: copiar archivos o carpeta de archivos . * * @author Song Lijun* @fecha 24 de junio de 2014* @param inputFile * Archivo fuente* @param outputFile * Archivo de destino* @param isOverWrite * Si se sobrescribe (solo para archivos) * @throws IOException */copia vacía estática pública (Archivo de entrada, archivo de salida, booleano esOverWrite) lanza IOException {si (!inputFile.exists()) {throw new RuntimeException(inputFile.getPath() + "¡El directorio de origen no existe!");}copyPri(inputFile, outputFile, isOverWrite);}/** * Función: uso recursivo para Copiar . * * @author Song Lijun* @fecha 24 de junio de 2014* @param inputFile * @param outputFile * @param isOverWrite * @throws IOException */private static void copyPri(File inputFile, File outputFile,boolean isOverWrite) throws IOException {/ / es un archivo. if (inputFile.isFile()) {copySimpleFile(inputFile, outputFile, isOverWrite);} else {// Carpeta if (!outputFile.exists()) {outputFile.mkdir();}// Subcarpetas en bucle para (Archivo secundario: inputFile.listFiles()) {copiar(niño,nuevo archivo(outputFile.getPath() + "/" + child.getName()),isOverWrite);}}}/** * Función: copiar un solo archivo* * @author Song Lijun* @fecha 24 de junio de 2014* @param inputFile * archivo fuente* @param OutputFile * archivo de destino * @param isOverWrite * Si se permite la sobrescritura * @throws IOException */private static void copySimpleFile(Archivo inputFile, File outputFile,boolean isOverWrite) lanza IOException {//El archivo de destino ya existe if (outputFile.exists()) {if (isOverWrite) {if (!outputFile.delete()) {throw new RuntimeException(outputFile.getPath() + " No se puede sobrescribir ");}} else {// No se permite sobrescribir return;}}InputStream in = new FileInputStream(inputFile);OutputStream out = new FileOutputStream(outputFile);byte[] buffer = nuevo byte[1024];int read = 0; while ((read = in.read(buffer)) != -1) {out. write(buffer, 0, read);}in.close();out.close();}/** * Función: eliminar archivos* * @author Song Lijun* @date 24 de junio de 2014* @param file * file*/public static void eliminar(Archivo) {deleteFile(archivo);}/** * Función: eliminar archivo, uso recursivo interno* * @author Song Lijun* @fecha 2014 junio 24, 2016 * @param file * file * @return booleano verdadero si la eliminación se realiza correctamente, falso si la eliminación falla. */private static void eliminarFile(Archivo de archivo) {if (archivo == null || !file.exists()) {return;}//Archivo único if (!file.isDirectory()) {boolean delFlag = file.delete ();if (!delFlag) {throw new RuntimeException(file.getPath() + "¡Falló la eliminación!");} else {return;}}// Eliminar subdirectorio para (Archivo secundario : file.listFiles()) {deleteFile(child);}// Elimine usted mismo file.delete();}/** * Extraiga la extensión del archivo de la ruta del archivo, por ejemplo "mypath/myfile.txt" ->. "txt" * @author Song Lijun* * @fecha 24 de junio de 2014* @param ruta del archivo* @return Si la ruta es nula, devuelve nula directamente. */public static String getFilenameExtension(Ruta de cadena) {if (ruta == null) {return null;}int textIndex = path.lastIndexOf(EXTENSION_SEPARATOR);if (extIndex == -1) {return null;}int carpetaIndex = ruta .lastIndexOf(FOLDER_SEPARATOR);if (folderIndex > extIndex) {return null;}return path.substring(extIndex + 1);}/** * Extrae el nombre del archivo de la ruta del archivo, por ejemplo: "mypath/myfile.txt" -> "myfile.txt". * @author Song Lijun* * @fecha 24 de junio de 2014* @param ruta * Ruta del archivo. * @return El nombre del archivo extraído. Si la ruta es nula, se devolverá nulo directamente. */public static String getFilename(Ruta de cadena) {if (ruta == null) {return null;}int separatorIndex = path.lastIndexOf(FOLDER_SEPARATOR);return (separatorIndex! = -1? path.substring(separatorIndex + 1): ruta);}/** * Función: Guardar el archivo. * * @author Song Lijun* @fecha 24 de junio de 2014* @param content * Bytes* @param file * Archivo guardado en * @throws IOException */public static void save(byte[] content, File file) throws IOException {if (file == null) {throw new RuntimeException("El archivo guardado no puede estar vacío");} if (content == null) {throw new RuntimeException("La secuencia del archivo no puede estar vacía");}InputStream es = new ByteArrayInputStream(content);save(is, file);}/** * Función: guardar el archivo* * @author Song Lijun* @fecha 24 de junio , 2014 * @param streamIn * Archivo de flujo * @param archivo * Archivo guardado en * @throws IOException */public static void save(InputStream streamIn, Archivo de archivo) lanza IOException {if (file == null) {throw new RuntimeException ("El archivo guardado no puede estar vacío");} if (streamIn == null) {throw new RuntimeException ("La secuencia del archivo no puede estar vacía");}/ /Output Stream OutputStream streamOut = null //Crea la carpeta si no existe. if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}streamOut = new FileOutputStream(file);int bytesRead = 0;byte[] buffer = nuevo byte[8192];mientras ((bytesRead = streamIn.read(buffer, 0, 8192)) != -1) {streamOut.write(buffer, 0, bytesRead);}streamOut.close();streamIn.close();}}
2. Herramientas MD5
paquete com.itjh.javaUtil;importar java.io.ByteArrayInputStream;importar java.io.File;importar java.io.FileInputStream;importar java.io.FileOutputStream;importar java.io.IOException;importar java.io.InputStream;importar java.io.OutputStream;/** * Clase auxiliar para operaciones relacionadas con archivos. * * @author Song Lijun* @fecha 24 de junio de 2014*/public class FileUtil {private static final String FOLDER_SEPARATOR = "/";private static final char EXTENSION_SEPARATOR = '.';/** * Función: copiar archivos o carpeta de archivos . * * @author Song Lijun* @fecha 24 de junio de 2014* @param inputFile * Archivo fuente* @param outputFile * Archivo de destino* @param isOverWrite * Si se sobrescribe (solo para archivos) * @throws IOException */copia vacía estática pública (Archivo de entrada, archivo de salida, booleano esOverWrite) lanza IOException {si (!inputFile.exists()) {throw new RuntimeException(inputFile.getPath() + "¡El directorio de origen no existe!");}copyPri(inputFile, outputFile, isOverWrite);}/** * Función: uso recursivo para Copiar . * * @author Song Lijun* @fecha 24 de junio de 2014* @param inputFile * @param outputFile * @param isOverWrite * @throws IOException */private static void copyPri(File inputFile, File outputFile,boolean isOverWrite) throws IOException {/ / es un archivo. if (inputFile.isFile()) {copySimpleFile(inputFile, outputFile, isOverWrite);} else {// Carpeta if (!outputFile.exists()) {outputFile.mkdir();}// Subcarpetas en bucle para (Archivo secundario: inputFile.listFiles()) {copiar(niño,nuevo archivo(outputFile.getPath() + "/" + child.getName()),isOverWrite);}}}/** * Función: copiar un solo archivo* * @author Song Lijun* @fecha 24 de junio de 2014* @param inputFile * archivo fuente* @param OutputFile * archivo de destino * @param isOverWrite * Si se permite la sobrescritura * @throws IOException */private static void copySimpleFile(Archivo inputFile, File outputFile,boolean isOverWrite) lanza IOException {//El archivo de destino ya existe if (outputFile.exists()) {if (isOverWrite) {if (!outputFile.delete()) {throw new RuntimeException(outputFile.getPath() + " No se puede sobrescribir ");}} else {// No se permite sobrescribir return;}}InputStream in = new FileInputStream(inputFile);OutputStream out = new FileOutputStream(outputFile);byte[] buffer = nuevo byte[1024];int read = 0; while ((read = in.read(buffer)) != -1) {out. write(buffer, 0, read);}in.close();out.close();}/** * Función: eliminar archivos* * @author Song Lijun* @date 24 de junio de 2014* @param file * file*/public static void eliminar(Archivo) {deleteFile(archivo);}/** * Función: eliminar archivo, uso recursivo interno* * @author Song Lijun* @fecha 2014 junio 24, 2016 * @param file * file * @return booleano verdadero si la eliminación se realiza correctamente, falso si la eliminación falla. */private static void eliminarFile(Archivo de archivo) {if (archivo == null || !file.exists()) {return;}//Archivo único if (!file.isDirectory()) {boolean delFlag = file.delete ();if (!delFlag) {throw new RuntimeException(file.getPath() + "¡Falló la eliminación!");} else {return;}}// Eliminar subdirectorio para (Archivo secundario : file.listFiles()) {deleteFile(child);}// Elimine usted mismo file.delete();}/** * Extraiga la extensión del archivo de la ruta del archivo, por ejemplo "mypath/myfile.txt" ->. "txt" * @author Song Lijun* * @fecha 24 de junio de 2014* @param ruta del archivo* @return Si la ruta es nula, devuelve nula directamente. */public static String getFilenameExtension(Ruta de cadena) {if (ruta == null) {return null;}int textIndex = path.lastIndexOf(EXTENSION_SEPARATOR);if (extIndex == -1) {return null;}int carpetaIndex = ruta .lastIndexOf(FOLDER_SEPARATOR);if (folderIndex > extIndex) {return null;}return path.substring(extIndex + 1);}/** * Extrae el nombre del archivo de la ruta del archivo, por ejemplo: "mypath/myfile.txt" -> "myfile.txt". * @author Song Lijun* * @fecha 24 de junio de 2014* @param ruta * Ruta del archivo. * @return El nombre del archivo extraído. Si la ruta es nula, se devolverá nulo directamente. */public static String getFilename(Ruta de cadena) {if (ruta == null) {return null;}int separatorIndex = path.lastIndexOf(FOLDER_SEPARATOR);return (separatorIndex! = -1? path.substring(separatorIndex + 1): ruta);}/** * Función: Guardar el archivo. * * @author Song Lijun* @fecha 24 de junio de 2014* @param content * Bytes* @param file * Archivo guardado en * @throws IOException */public static void save(byte[] content, File file) throws IOException {if (file == null) {throw new RuntimeException("El archivo guardado no puede estar vacío");} if (content == null) {throw new RuntimeException("La secuencia del archivo no puede estar vacía");}InputStream es = new ByteArrayInputStream(content);save(is, file);}/** * Función: guardar el archivo* * @author Song Lijun* @fecha 24 de junio , 2014 * @param streamIn * Archivo de flujo * @param archivo * Archivo guardado en * @throws IOException */public static void save(InputStream streamIn, Archivo de archivo) lanza IOException {if (file == null) {throw new RuntimeException ("El archivo guardado no puede estar vacío");} if (streamIn == null) {throw new RuntimeException ("La secuencia del archivo no puede estar vacía");}/ /Output Stream OutputStream streamOut = null //Crea la carpeta si no existe. if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}streamOut = new FileOutputStream(file);int bytesRead = 0;byte[] buffer = nuevo byte[8192];mientras ((bytesRead = streamIn.read(buffer, 0, 8192)) != -1) {streamOut.write(buffer, 0, bytesRead);}streamOut.close();streamIn.close();}}