
Si tenemos en nuestro sistema este mecanismo lo ideal sería cifrar esa clave mediante un algoritmo de encriptación y guardar el resultado en un campo de texto plano, con codificación UTF-8 que es estandar (por decirlo así). De esta forma aseguramos la integridad del sistema como la seguridad a nivel de acceso para los usuarios.... Entonces, ¿Cómo podemos hacer esto?, como me gusta Java y tengo a la mano MySQL haré el ejemplo en base al ejemplo anterior.
Primero lo primero, implantar el sistema de Encriptación DES explicado en la entrada anterior.
Luego declaramos la variable que hace referencia a la clase:
DES clase_encript = new DES("carlitoxenlaweb"); |cambia por|--> DES clase_encript;
Declaramos un nuevo campo de texto para ingresar la contraseña:
JTextField clave = new JTextField();
Agregamos el campo:
add(clave);
Y por último modificamos el listener para que envíe la encriptación cada vez que se llame el método:
public void actionPerformed(ActionEvent evt) {
clase_encript = new DES(clave.getText());
if (...........resto del codigo.............)
Asumiendo que ya tenemos la clase que se encarga del algoritmo DES, nuestro código vendría quedando algo así:
import javax.swing.*; import java.awt.event.*; import java.awt.GridLayout; class Encriptar extends JFrame implements ActionListener { //carga del algoritmo DES clase_encript; JLabel etiqueta = new JLabel("Probando DES: Carlitox en la Web"); //cajas de texto JTextArea texto_desencriptado = new JTextArea("AQUI EL PASS"); JScrollPane scroll_desencript=new JScrollPane(texto_desencriptado,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); JTextArea texto_encriptado = new JTextArea("RESULTADO"); JScrollPane scroll_encript=new JScrollPane(texto_encriptado,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); JTextField clave = new JTextField("AQUI LA CLAVE"); //botones JButton encriptar = new JButton ("Encriptar"); JButton desencriptar = new JButton ("Desencriptar"); Encriptar() { //el diseño setLayout(new GridLayout(0,2)); //los elementos add(scroll_desencript); add(scroll_encript); add(encriptar); add(desencriptar); add(etiqueta); add(clave); //implementamos la accion encriptar.addActionListener(this); desencriptar.addActionListener(this); //Cerrar Ventana addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { System.exit(0); } }); setTitle("Encriptación DES Carlitox en la Web"); setSize(800,600); setVisible(true); } //el escucha o listener public void actionPerformed(ActionEvent evt) { clase_encript = new DES(clave.getText()); if(evt.getSource()==encriptar) texto_encriptado.setText(clase_encript.encrypt(texto_desencriptado.getText())); if(evt.getSource()==desencriptar) texto_desencriptado.setText(clase_encript.decrypt(texto_encriptado.getText())); } //la clase principal public static void main (String []args) { new Encriptar(); } }
Entonces ese texto que vemos encriptado fue creado a partir de la clave que se ingresa en el campo de texto, por lo que ahora solo resta guardar esa clave en el campo de MySQL, para esto podemos ver la entrada Conectando Java con MySQL e Introduciendo datos a una tabla.
Recibe notificaciones por correo