UNIVERSIDAD NACIONAL DE ANCASH “SANTIAGO ANTUNEZ DE MAYOLO”
FACULTAD DE CIENCIAS ESCUELA PROFESIONAL DE INGINIERIA DE SISTEMAS E INFORMATICA
Encriptación y Des-encriptación con Base de Datos en Mysql y Conexión a Java Netbeans CURSO: PROGRAMACION III PROFESOR: Ing. REVILLA CANCAN W.
ALUMNO:
CHAVEZ ALVARADO Shubert
Huaraz, Septiembre del 2012
CREACION DE ENCRIPTADO EN CONECCION DE BASE DE DATOS MYSQL-JAVA NETBEANS 1. Base de datos en Mysql:
CREATE DATABASE `practica` CREATE TABLE `practica`.`encriptar` ( `codencriptar` varchar(10) NOT NULL, `nomusuario` varchar(20) NOT NULL, `claveusuario` varchar(20) NOT NULL, PRIMARY KEY (`codencriptar`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
2. Procedimientos Almacenados: DELIMITER $$
DROP PROCEDURE IF EXISTS `practica`.`eliminar_encriptar`$$ CREATE DEFINER=`root`@`localhost` DEFINER=`root`@`localhost` PROCEDURE `practica`.`eliminar_encriptar` `practica`.`eliminar_encriptar`(cod (cod varchar(10)) BEGIN delete from encriptar where codencriptar=cod; END $$
DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS `practica`.`insertar_encriptar `practica`.` insertar_encriptar`$$ `$$ CREATE DEFINER=`root`@`localhost` DEFINER=`root`@`localhost` PROCEDURE `practica`.`insertar_encriptar`( in codencriptar varchar(10), in nomusuario varchar(20), in claveusuario varchar(20)) BEGIN insert into encriptar values(codencriptar,nomusuario, claveusuario); END $$ DELIMITER ; DELIMITER $$ DROP PROCEDURE IF EXISTS `practica`.`Modificar_Encriptado`$$ CREATE DEFINER=`root`@`localhost` DEFINER=`root`@`localhost` PROCEDURE `practica`.`Modificar_Encriptado`(id varchar(10), nom varchar(20),cla varchar(20)) BEGIN update encriptar set nomusuario=nom, claveusuario=cla where codencriptar=id; END $$ DELIMITER ;
3. Clases y Vistas en Java-Netbeans: 3.1. Clases: Clase ConexionBD;
package practica; import java.sql.Connection; import java.sql.DriverManager;
import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class ConexionBD {
String usuario = "root", servidor = "localhost", " localhost", contraseña = "", basedatos = "practica"; public Connection conec = null; public PreparedStatement prest=null;//para proc almacenados public Statement st = null;//para consutas normales public ResultSet rs = null;//resultado de la consulta public void conectar() { try { String URLConexion = "jdbc:mysql://" + servidor + "/" " /" + basedatos; conec = DriverManager.getConnection(URLC Dri verManager.getConnection(URLConexion, onexion, usuario, contraseña); st = conec.createStatement(); } catch (Exception e) { e.printStackTrace(); } } } Clase Consultas;
package practica; import java.sql.ResultSet; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JComboBox j avax.swing.JComboBox;; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; public void VerEncriptado(String valor, DefaultTableModel model) {
try { conn.conectar(); conn.prest = conn.conec.prepareStatement("call verencriptar(?)"); conn.prest.setString(1, conn.prest.setString(1, valor);
VerEnTabla(model, conn.prest.executeQuery(),3); } catch (SQLException ex) { Logger.getLogger(Consultas.class.getName()).log(Level.SE Logger.getLogger(Consultas.class.getName()).log(Level.SEVERE, VERE, null, ex); } } public boolean GrabarEncriptado(String codigo, String nombre,String clave) {
boolean b = false; try { conn.conectar(); conn.prest = conn.conec.prepareStatement("call conn.conec.prepareStatement("call Grabar_Encriptado(?,?,?)");
conn.prest.setString(1, conn.prest.setString(1, codigo); conn.prest.setString(2, conn.prest.setString(2, nombre); conn.prest.setString(3, conn.prest.setString(3, clave); conn.prest.executeUpdate(); b = true; } catch (SQLException ex) { JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog (null, ex); Logger.getLogger(Consultas.class.getName()).log(Level.SE Logger.getLogger(Consultas.class.getName()).log(Level.SEVERE, VERE, null, ex); } return b; } Clase Encriptado; package encriptar; public class Encriptacion { private static String T = T = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijk
lmnopqrstuvwxyz0123456789"; private static String E = "!#$%&'()*+,-./:;<=>?@^ÀÂÃÄÅÆÇÈÉÊËÌÍÙÛÜÝÞßàâãäåæ çèêëìîïðùúûüýþÿ"; //-------------------------------encriptar //-------------------------------encriptar y desencriptar desencriptar textos que terminan en consonante-----consonante------
public static String encriptar(String k) {
String cad = ""; String w = ""; for (int i = 2; i <= k.length(); i += 2) { w += k.substring(i - 1, i); } for (int i = 1; i <= k.length(); i += 2) { w += k.substring(i - 1, i); }
for (int i = 1; i <= w.length(); i++) { for (int j = 1; j <= T.length(); j++) { if (w.substring(i - 1, i).equals(T.substring(j - 1, j))) { cad += E.substring(j - 1, j); } } } return cad; } public static String desencriptar(String text) {
String cadena = ""; String der = ""; String izq = ""; int mitad = text.length() / 2; izq = text.substring(0, mitad); der = text.substring(mitad, text.length()); if (izq.length() == der.length()) { for (int i = 0; i < izq.length(); i++) { cadena += der.substring(i, i + 1); cadena += izq.substring(i, i + 1); } } else { if (izq.length() < der.length()) { for (int i = 0; i < izq.length(); i++) {
}
}
cadena += der.substring(i, i + 1); cadena += izq.substring(i, i + 1); if (i == izq.length() - 1) { cadena += der.substring(i + 1, i + 2); }
} der = ""; for (int i = 1; i <= cadena.length(); i++) { for (int j = 1; j <= E.length(); j++) { if (cadena.substring(i - 1, i).equals(E.substring(j - 1, j))) { der += T.substring(j - 1, j); } } } return der; } //-------------------------------encriptar //-------------------------------encriptar y desencriptar desencriptar textos que terminan en vocal-----------
public static String encriptarv(String p) {
String cade = ""; String y = ""; int m=0; for (int i =1;i<=p.length();i++) { y += p.substring(p.length()-i,p.leng p.substring(p.length()-i,p.length()-m); th()-m); System.out.print(i); m++; } for (int i = 1; i <= y.length(); i++) { for (int j = 1; j <= T.length(); j++) { if (y.substring(i - 1, i).equals(T.substring(j - 1, j))) { cade += E.substring(j - 1, j); } } } System.out.print(y); return cade;
} public static String desencriptarv(String texto) {
String hola=""; String dere=""; int m=0; for (int i =1;i<=texto.length();i++) { hola+= texto.substring(texto.length()texto.substring(texto.length()-i,texto.length()-m); i,texto.length()-m); System.out.print(i); m++; } for (int i = 1; i <= hola.length(); i++) { for (int j = 1; j <= E.length(); j++) { if (hola.substring(i - 1, i).equals(E.substring(j - 1, j))) { dere += T.substring(j - 1, j); } } }
return dere; } 3.2. Ventanas: Frm Encriptado:
Código de Comparación //compara el ultimo carácter si es vocal o consonante para el encriptado. String K; K=txtnombre.getText(); String S = "AEIOUaeiou"; int sum=0; String subcad1=K.substring(K.length()-1,K.length()); for(int j=1;j<=S.length();j++){ if (subcad1.equals(S.substring(j-1,j))) { sum=sum+0; }else{ sum=sum+1; } } JOptionPane.showMessageDialog(null,"------TERMINO JOptionPane.showMessa geDialog(null,"------TERMINO EN CONSONANTE----"+sum); if(sum==9) txte.setText(Encriptacion.encriptarv(K)); else txte.setText(Encriptacion.encriptar(K)); }
private void btnNuevoActionPerformed(java.awt.event.ActionEvent btnNuevoActionPerformed(java.awt.event.ActionEvent evt) { //boton Nuevo
if (btnNuevo.getText().compareTo("Nuevo") == 0) {//si el botón tiene texto nuevo lo cambiamos a estado de edicion btnNuevo.setText("Grabar"); Habilitar(true);
} else {//si esta en texto Grabar grabamos los datos lo devolvemos a Nuevo if(consul.VerificaExiste("encriptar", "codencriptar", txtCodigo.getText())==false){ if (consul.GrabarEncriptado(txtCodigo.getText(), txtNombre.getText(),Encriptacion.encriptar(txtclave.getText()))) { JOptionPane.showMessageDialog(this, JOptionPane.showMessage Dialog(this, "Se ha registrado correctamente"); LimpiarTexto(); btnNuevo.setText("Nuevo"); VerEncriptar(); Habilitar(false); } }else{ JOptionPane.showMessageDialog(this, JOptionPane.showMessage Dialog(this, "el codigo ingresado ya existe\n" + "por favor ingrese otro"); } } } private void btnEliminarActionPerformed(java.awt.event.ActionE btnEliminarActionPerformed(java.awt.event.ActionEvent vent evt) { //boton Eliminar int fila = tabla.getSelectedRow(); if (fila >= 0) { int res = JOptionPane.showConfirmDialog(this, "esta Seguro de Eliminar El Registro", "Confirmar", JOptionPane.YES_NO_OPTION); if (res == JOptionPane.YES_OPTION) { if (consul.EliminarEncriptar(modelo.getValueAt(fila, 0).toString())) { JOptionPane.showMessageDialog(this, JOptionPane.showMessage Dialog(this, "Registro Eliminado"); VerEncriptar(); } } } else { JOptionPane.showMessageDialog(this, "Primero selecione Una Fila"); } }
private void btnSalirActionPerformed(java.awt.event.ActionE btnSalirActionPerformed(java.awt.event.ActionEvent vent evt) { // boton salir
dispose(); }