Cifrar Archivos y Encriptar Textos
Last updated
Was this helpful?
Last updated
Was this helpful?
Muchas veces necesitamos encriptar archivos para protegerlos.
Clonarlo
git clone https://avbravo@bitbucket.org/avbravo/fiscalencripter.git
Gracias al blog publicado
Implementamos dentro de jmoordbutils los metodos para encriptar los archivos,
Deseamos cifrar el archivo license.json
Creamos una aplicación Web
Deseamos cifrar el archivo license.json ubicado en el directorio /home/avbravo/Descargas/
Seleccionar CIFRAR ARCHIVOS
Nos solicita el path con nombre de archivo a cifrar
El path del directorio donde se guardara los archivos cifrados
El nombre y path del archivo zip a generar con los archivos cifrados.
Rellenamos los datos y dar clic en Cifrar File
Nos genera los archivos
Para desencriptar indicamos tres archivos generados en la encriptacion y la extension del archivo a desenciptar
al dar clic en Desencriptar File.
se genera el archivo _decrytper, que contiene el archivo desencriptado.dentro de la carpeta license
Se descomprime el archivo authorizedlicense,zip
<dependency>
<groupId>com.github.avbravo</groupId>
<artifactId>jmoordbutils</artifactId>
<version>0.67</version>
</dependency>
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form id="form" prependId="false">
<p:growl id="growl"/>
<p:fieldset legend="ENCRIPTAR TEXTO" style="margin-bottom:20px" toggleable="true" collapsed="true">
<p:panelGrid columns="3">
<p:outputLabel value="Texto"/>
<p:inputText value ="#{encriptadorController.texto}" size="50"/>
<p:commandButton value="Encriptar" icon="fa fa-lock" action="#{encriptadorController.encriptar()}"
update=":form" />
<p:outputLabel value="Resultado"/>
<p:outputLabel value="#{encriptadorController.resultadoEncriptado}"/>
</p:panelGrid>
</p:fieldset>
<p:fieldset legend="DESENCRIPTAR TEXTO" style="margin-bottom:20px" toggleable="true" collapsed="true">
<p:panelGrid columns="3">
<p:outputLabel value="Texto"/>
<p:inputText value ="#{encriptadorController.textoParaDesencriptar}" size="50"/>
<p:commandButton value="Desencriptar" icon="fa fa-unlock" action="#{encriptadorController.desencriptar()}"
update=":form" />
<p:outputLabel value="Resultado"/>
<p:outputLabel value="#{encriptadorController.resultadoDesencriptado}"/>
</p:panelGrid>
</p:fieldset>
<p:fieldset legend="CIFRAR ARCHIVOS" style="margin-bottom:20px" toggleable="true" collapsed="true">
<p:outputLabel value="File Cipher"/>
<p:panelGrid columns="3">
<p:outputLabel value="Ârhivo con path"/>
<p:inputText value ="#{encriptadorController.archivo}" size="50"/>
<p:spacer/>
<p:outputLabel value="Llave de cifrado"/>
<p:inputText value ="#{encriptadorController.keyCifrado}" size="50"/>
<p:commandButton icon="fa fa-file-zip-o" value="Cifrar File" action="#{encriptadorController.encriptarFile()}"
update=":form" />
<p:spacer/>
<p:fieldset legend="ARCHIVOS GENERADOS" style="margin-bottom:20px" collapsed="false">
<p:panelGrid columns="2">
<p:outputLabel value=".enc"/>
<p:outputLabel value="#{encriptadorController.fileEnc}"/>
<p:outputLabel value="iv.enc"/>
<p:outputLabel value="#{encriptadorController.fileIvEnc}"/>
<p:outputLabel value=".des"/>
<p:outputLabel value="#{encriptadorController.fileDes}"/>
</p:panelGrid>
</p:fieldset>
</p:panelGrid>
</p:fieldset>
<p:fieldset legend="DESENCRIPTAR ARCHIVOS" style="margin-bottom:20px" toggleable="true" collapsed="true">
<p:outputLabel value="File Desencripter"/>
<p:panelGrid columns="3">
<p:outputLabel value="path file.enc"/>
<p:inputText value ="#{encriptadorController.fileEncParaDesencriptar}" size="50"/>
<p:spacer/>
<p:outputLabel value="path fileiv.enc"/>
<p:inputText value ="#{encriptadorController.fileIvEncParaDesencriptar}" size="50"/>
<p:spacer/>
<p:outputLabel value="path file.des"/>
<p:inputText value ="#{encriptadorController.fileDesParaDesencriptar}" size="50"/>
<p:spacer/>
<p:outputLabel value="Extension of File"/>
<p:inputText value ="#{encriptadorController.extension}" size="50"/>
<p:spacer/>
<p:outputLabel value="Llave de cifrado"/>
<p:inputText value ="#{encriptadorController.keyDesCifrado}" size="50"/>
<p:commandButton icon="fa fa-file-text-o" value="Desencriptar File" action="#{encriptadorController.desencriptarFile()}"
update=":form" />
<p:outputLabel value="Archivo desencriptado"/>
<p:outputLabel value="#{encriptadorController.archivoDesencriptado}"/>
</p:panelGrid>
</p:fieldset>
</h:form>
</h:body>
</html>
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.javscaz.fiscalweb.fiscalencripter;
import com.avbravo.jmoordbutils.JsfUtil;
import com.avbravo.jmoordbutils.fileencripter.FileDecryption;
import com.avbravo.jmoordbutils.fileencripter.FileEncryption;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
/**
*
* @author avbravo
*/
@Named(value = "encriptadorController")
@SessionScoped
public class EncriptadorController implements Serializable {
private String texto;
private String textoParaDesencriptar;
private String resultadoEncriptado="";
private String resultadoDesencriptado="";
private String keyCifrado="a3*%b!Rm1_xS1TkjAWs3";
private String keyDesCifrado="a3*%b!Rm1_xS1TkjAWs3";
private String archivo="/home/avbravo/Descargas/";
private String archivoDesencriptado="";
public String getArchivoDesencriptado() {
return archivoDesencriptado;
}
public void setArchivoDesencriptado(String archivoDesencriptado) {
this.archivoDesencriptado = archivoDesencriptado;
}
String fileEnc="";
String fileIvEnc="";
String fileDes="";
String fileEncParaDesencriptar="/home/avbravo/Descargas/";
String fileIvEncParaDesencriptar="/home/avbravo/Descargas/";
String fileDesParaDesencriptar="/home/avbravo/Descargas/";
String password="/home/avbravo/Descargas/";;
String extension="json";
public String getTextoParaDesencriptar() {
return textoParaDesencriptar;
}
public void setTextoParaDesencriptar(String textoParaDesencriptar) {
this.textoParaDesencriptar = textoParaDesencriptar;
}
public String getKeyCifrado() {
return keyCifrado;
}
public void setKeyCifrado(String keyCifrado) {
this.keyCifrado = keyCifrado;
}
public String getKeyDesCifrado() {
return keyDesCifrado;
}
public void setKeyDesCifrado(String keyDesCifrado) {
this.keyDesCifrado = keyDesCifrado;
}
public String getFileDes() {
return fileDes;
}
public void setFileDes(String fileDes) {
this.fileDes = fileDes;
}
public String getResultadoEncriptado() {
return resultadoEncriptado;
}
public void setResultadoEncriptado(String resultadoEncriptado) {
this.resultadoEncriptado = resultadoEncriptado;
}
public String getResultadoDesencriptado() {
return resultadoDesencriptado;
}
public void setResultadoDesencriptado(String resultadoDesencriptado) {
this.resultadoDesencriptado = resultadoDesencriptado;
}
public String getFileEnc() {
return fileEnc;
}
public void setFileEnc(String fileEnc) {
this.fileEnc = fileEnc;
}
public String getFileIvEnc() {
return fileIvEnc;
}
public void setFileIvEnc(String fileIvEnc) {
this.fileIvEnc = fileIvEnc;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getExtension() {
return extension;
}
public void setExtension(String extension) {
this.extension = extension;
}
public String getFileEncParaDesencriptar() {
return fileEncParaDesencriptar;
}
public void setFileEncParaDesencriptar(String fileEncParaDesencriptar) {
this.fileEncParaDesencriptar = fileEncParaDesencriptar;
}
public String getFileIvEncParaDesencriptar() {
return fileIvEncParaDesencriptar;
}
public void setFileIvEncParaDesencriptar(String fileIvEncParaDesencriptar) {
this.fileIvEncParaDesencriptar = fileIvEncParaDesencriptar;
}
public String getFileDesParaDesencriptar() {
return fileDesParaDesencriptar;
}
public void setFileDesParaDesencriptar(String fileDesParaDesencriptar) {
this.fileDesParaDesencriptar = fileDesParaDesencriptar;
}
public String getArchivo() {
return archivo;
}
public void setArchivo(String archivo) {
this.archivo = archivo;
}
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
/**
* Creates a new instance of EncriptadorController
*/
public EncriptadorController() {
}
// <editor-fold defaultstate="collapsed" desc="String encriptar()">
public String encriptar(){
try {
if(texto == null || texto.isEmpty()){
JsfUtil.warningDialog("Advertencia", "Ingrese el texto");
}
else{
resultadoEncriptado = JsfUtil.encriptar(texto);
}
} catch (Exception e) {
JsfUtil.errorDialog("Error", e.getLocalizedMessage());
}
return "";
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="String desencriptar()">
public String desencriptar(){
try {
if(texto == null || texto.isEmpty()){
JsfUtil.warningDialog("Advertencia", "Ingrese el texto");
}
else{
resultadoDesencriptado = JsfUtil.desencriptar(textoParaDesencriptar);
}
} catch (Exception e) {
JsfUtil.errorDialog("Error", e.getLocalizedMessage());
}
return "";
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="String encriptarFile()">
public String encriptarFile(){
try{
if(FileEncryption.cifrar(archivo, keyCifrado)){
JsfUtil.successMessage("Se encripto archivo");
fileEnc= archivo.substring(0, archivo.lastIndexOf('.'))+".enc";
fileIvEnc = archivo.substring(0, archivo.lastIndexOf('.'))+"iv.enc";
fileDes = archivo.substring(0, archivo.lastIndexOf('.'))+".des";
fileEncParaDesencriptar= archivo.substring(0, archivo.lastIndexOf('.'))+".enc";
fileIvEncParaDesencriptar = archivo.substring(0, archivo.lastIndexOf('.'))+"iv.enc";
fileDesParaDesencriptar = archivo.substring(0, archivo.lastIndexOf('.'))+".des";
extension = archivo.substring(archivo.lastIndexOf('.')+1, archivo.length());
}else{
JsfUtil.warningMessage("No se encriptp el archivo");
}
} catch (Exception e) {
JsfUtil.errorDialog("encriptarFile()", e.getLocalizedMessage());
}
return "";
}
// </editor-fold>
// <editor-fold defaultstate="collapsed" desc="String desencriptarFile()">
public String desencriptarFile(){
try{
if(FileDecryption.desencriptarFile(fileEncParaDesencriptar, fileIvEncParaDesencriptar, fileDesParaDesencriptar, keyDesCifrado, extension)){
JsfUtil.successMessage("Se desencripto archivo");
archivoDesencriptado= fileEncParaDesencriptar.substring(0, fileEncParaDesencriptar.lastIndexOf('.'))+"_decrypted."+extension;
}else{
JsfUtil.warningMessage("No se desencriptp el archivo");
}
} catch (Exception e) {
JsfUtil.errorDialog("desencriptarFile()", e.getLocalizedMessage());
}
return "";
}
// </editor-fold>
}