package cifrador; import java.awt.*; import java.awt.event.*; import java.applet.*; public class CifradoSimpleMonoalfabetico extends Applet { private static final long serialVersionUID = 1L; boolean isStandalone = false; private String blanco = "__________________________________________________"; Panel Panel1 = new Panel(); Label lTitulo = new Label(); Label lAlfa = new Label(); TextField tAlfa = new TextField(); Label lPlano = new Label(); TextField tPlano = new TextField(); Label lClave = new Label(); TextField tClave = new TextField(); Label lCifrado = new Label(); TextField tCifrado = new TextField(); Label lError = new Label(); Button btnCifrar = new Button(); Button btnDesCifrar = new Button(); Button btnBorrar = new Button(); GridBagLayout gbl1 = new GridBagLayout(); GridBagConstraints gbc1=new GridBagConstraints(); BorderLayout borderLayout2 = new BorderLayout(); GridLayout gridLayout1 = new GridLayout(); //Construct the applet public CifradoSimpleMonoalfabetico() { } //Initialize the applet public void init() { try { jbInit(); } catch (Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { int ancho = Integer.parseInt(this.getParameter("WIDTH")); int alto = Integer.parseInt(this.getParameter("HEIGHT")); if (ancho < 400) ancho=400; if (alto < 250) alto=250; this.setSize(new Dimension(ancho, alto)); Panel1.setBackground(Color.lightGray); lTitulo.setText("Cifra de Sustitucion Simple Monoalfabética"); lError.setText(blanco); lAlfa.setText("Alfabeto"); tAlfa.setColumns(30); tAlfa.setEditable(true); tAlfa.setText("abcdefghijklmnñopqrstuvwxyz"); lPlano.setText("Texto Plano"); tPlano.setColumns(36); tPlano.setEditable(true); tPlano.setText("esto es una prueba"); lClave.setText("Clave"); tClave.setColumns(2); tClave.setEditable(true); tClave.setText("p"); lCifrado.setText("TEXTO CIFRADO"); tCifrado.setColumns(36); tCifrado.setEditable(true); tCifrado.setText(""); btnCifrar.setFont(new Font("Dialog", 1, 14)); btnCifrar.setLabel("Cifrar"); btnCifrar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { btnCifrar_actionPerformed(e); } }); btnDesCifrar.setLabel("Descifrar"); btnDesCifrar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { btnDesCifrar_actionPerformed(e); } }); btnBorrar.setLabel("Borrar"); btnBorrar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { btnBorrar_actionPerformed(e); } }); this.setLayout(gridLayout1); this.add(Panel1, null); //panel 1 Panel1.setLayout(gbl1); gbc1.anchor=GridBagConstraints.CENTER; gbc1.gridwidth=1; gbc1.insets=new Insets(5,0,5,0); gbc1.gridwidth=GridBagConstraints.REMAINDER; Panel1.add(lTitulo, gbc1); gbc1.anchor=GridBagConstraints.WEST; gbc1.gridwidth=1; gbc1.insets=new Insets(5,0,5,0); Panel1.add(lAlfa, gbc1); gbc1.gridwidth=GridBagConstraints.REMAINDER; Panel1.add(tAlfa, gbc1); gbc1.anchor=GridBagConstraints.WEST; gbc1.gridwidth=1; gbc1.insets=new Insets(5,0,5,0); Panel1.add(lPlano, gbc1); gbc1.gridwidth=GridBagConstraints.REMAINDER; Panel1.add(tPlano, gbc1); gbc1.anchor=GridBagConstraints.WEST; gbc1.gridwidth=1; gbc1.insets=new Insets(5,0,5,0); Panel1.add(lClave, gbc1); gbc1.gridwidth=GridBagConstraints.REMAINDER; Panel1.add(tClave, gbc1); gbc1.anchor=GridBagConstraints.WEST; gbc1.gridwidth=1; gbc1.insets=new Insets(5,0,5,0); Panel1.add(lCifrado, gbc1); gbc1.gridwidth=GridBagConstraints.REMAINDER; Panel1.add(tCifrado, gbc1); gbc1.anchor=GridBagConstraints.CENTER; gbc1.gridwidth=1; gbc1.insets=new Insets(5,0,5,0); gbc1.gridwidth=GridBagConstraints.REMAINDER; Panel1.add(lError, gbc1); gbc1.anchor=GridBagConstraints.CENTER; gbc1.gridwidth=1; gbc1.insets=new Insets(25,0,5,0); Panel1.add(btnCifrar, gbc1); Panel1.add(btnDesCifrar, gbc1); Panel1.add(btnBorrar, gbc1); gbc1.gridwidth=GridBagConstraints.REMAINDER; } void btnCifrar_actionPerformed(ActionEvent e) { int error = 0; int posC = 0; lError.setText(blanco); String alfabeto = tAlfa.getText().toLowerCase(); String entrada=tPlano.getText().toLowerCase(); String clave=tClave.getText().toLowerCase(); String xCifrado = ""; if (clave.length() == 0){ lError.setText("Debe poner la clave."); error = 1; }else{ posC = alfabeto.lastIndexOf(clave.substring(0, 1)) ; if (posC == -1){ lError.setText("El caracter de la clave no está en el alfabeto."); error = 1; } } if (error == 0){ for(int i=0; i < entrada.length(); i++){ if (entrada.substring(i, i+1).equals(" ")) { xCifrado = xCifrado + " "; }else{ int posP = alfabeto.lastIndexOf(entrada.substring(i, i+1)) ; if (posP == -1) xCifrado = xCifrado + "?"; else xCifrado = xCifrado + alfabeto.charAt((posC + posP) % alfabeto.length()); } } tCifrado.setText(xCifrado.toUpperCase()); } } void btnDesCifrar_actionPerformed(ActionEvent e) { int error = 0; int posC = 0; lError.setText(blanco); String alfabeto = tAlfa.getText().toLowerCase(); String entrada=""; String clave=tClave.getText().toLowerCase(); String xCifrado = tCifrado.getText().toLowerCase(); if (clave.length() == 0){ lError.setText("Debe poner la clave."); error = 1; }else{ posC = alfabeto.lastIndexOf(clave.substring(0, 1)) ; if (posC == -1){ lError.setText("El caracter de la clave no está en el alfabeto."); error = 1; } } if (error == 0){ for(int i=0; i < xCifrado.length(); i++){ if (xCifrado.substring(i, i+1).equals(" ")) { entrada = entrada + " "; }else{ int posP = alfabeto.lastIndexOf(xCifrado.substring(i, i+1)) ; if (posP == -1) entrada = entrada + "?"; else entrada = entrada + alfabeto.charAt((27 + posP - posC) % alfabeto.length()); } } tPlano.setText(entrada.toLowerCase()); } } void btnBorrar_actionPerformed(ActionEvent e) { tPlano.setText(""); tCifrado.setText(""); tClave.setText(""); } }