Está en la página 1de 7

package _vigenere_;

public class Vigenere extends javax.swing.JFrame {

private String tabla =


"abcdefghijklmnñopqrstuvwxyzáéíóúABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ1234567890.,;
_:+-*/ @$€#¿?!¡=()[]{}\\\"";

public Vigenere() {

initComponents();

setLocationRelativeTo(this);

private String Limpiar_texto(String texto)

texto = texto.replaceAll("\n", "");

for(int x = 0; x < texto.length(); x++)

int posicion = tabla.indexOf(texto.charAt(x));

if (posicion == -1)

texto = texto.replace(texto.charAt(x), ' ');


}

return texto;

public String Encriptar(String texto,String clave)

String texto_limpioo = Limpiar_texto(texto);

String cifrado = "";

for(int t = 0,k= 0; t < texto_limpioo.length(); t++,k= (k+1) % clave.length())

int posicion = (tabla.indexOf(texto_limpioo.charAt(t)) + tabla.indexOf(clave.charAt(k))) %


tabla.length();

cifrado += tabla.charAt(posicion );

return cifrado;

public String Desencriptar(String texto,String clave )

String texto_limpioo = Limpiar_texto(texto);

String descifrado = "";


for(int t = 0, c = 0; t < texto_limpioo.length(); t++, c = (c +1) % clave .length())

int posicion = (tabla.indexOf(texto_limpioo.charAt(t)) - tabla.indexOf(clave.charAt(c)));

posicion = (posicion < 0)?(posicion + tabla.length()): posicion;

descifrado += tabla.charAt(posicion);

return descifrado;

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

jScrollPane1 = new javax.swing.JScrollPane();

area_salida = new javax.swing.JTextArea();

jScrollPane2 = new javax.swing.JScrollPane();

area_entrada = new javax.swing.JTextArea();

boton_encriptar = new javax.swing.JButton();

boton_desencriptar = new javax.swing.JButton();

jLabel1 = new javax.swing.JLabel();

campo_clave = new javax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

area_salida.setColumns(20);

area_salida.setRows(5);

jScrollPane1.setViewportView(area_salida);
area_entrada.setColumns(20);

area_entrada.setRows(5);

jScrollPane2.setViewportView(area_entrada);

boton_encriptar.setText("Encriptar");

boton_encriptar.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

boton_encriptarActionPerformed(evt);

});

boton_desencriptar.setText("Desencriptar");

boton_desencriptar.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

boton_desencriptarActionPerformed(evt);

});

jLabel1.setText("Introduzca clave");

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jScrollPane2)

.addComponent(jScrollPane1)

.addGroup(layout.createSequentialGroup()

.addComponent(boton_encriptar, javax.swing.GroupLayout.PREFERRED_SIZE,
107, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(37, 37, 37)

.addComponent(boton_desencriptar, javax.swing.GroupLayout.PREFERRED_SIZE,
110, javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(55, 55, 55)

.addComponent(jLabel1)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(campo_clave, javax.swing.GroupLayout.DEFAULT_SIZE, 268,


Short.MAX_VALUE)))

.addContainerGap())

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 165,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(boton_encriptar)

.addComponent(boton_desencriptar)

.addComponent(jLabel1)

.addComponent(campo_clave, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 27,
Short.MAX_VALUE)

.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 165,


javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap())

);

pack();

}// </editor-fold>

private void boton_encriptarActionPerformed(java.awt.event.ActionEvent evt) {

String texto = area_entrada.getText();

String clave = campo_clave.getText();

area_salida.setText(Encriptar(texto,clave ));

private void boton_desencriptarActionPerformed(java.awt.event.ActionEvent evt) {

String texto = area_entrada.getText();

String clave = campo_clave.getText();

area_salida.setText(Desencriptar(texto,clave ));

}
public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Vigenere().setVisible(true);

});

// Variables declaration - do not modify

private javax.swing.JButton boton_desencriptar;

private javax.swing.JButton boton_encriptar;

private javax.swing.JTextArea area_entrada;

private javax.swing.JLabel jLabel1;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JScrollPane jScrollPane2;

private javax.swing.JTextField campo_clave;

private javax.swing.JTextArea area_salida;

// End of variables declaration

También podría gustarte