PROGRAMA DE ENCRIPTADO UTILIZANDO LA CIFRA DE CÉSAR

 

 

Es un applet que se basa en el método de encriptación llamado la cifra de cesar:

 

El código de la página:

 

<HTML>

<HEAD>

<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">

</HEAD>

<BODY>

 

<P>&nbsp;</P><center>

<h1> LA CIFRA DE CÉSAR</H1>

 

<!-- Insert HTML here -->

                <applet

                               code=CaesarCipherApplet.class

                               name=CaesarCipherApplet

                               width=400

                               height=400  VIEWASTEXT>

                </applet>

</center>

</BODY>

</HTML>

 

El código del applet  que se llama CaesarCipherApplet:

 

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

 

 

public class CaesarCipherApplet extends Applet

{

                private TextArea textoPlano = new TextArea(5,50);

                private TextArea textoCifrado = new TextArea(5,50);

                private Choice escojerClave = new Choice();

                private Button encrypt = new Button("Encriptar");

                private Button decrypt = new Button("Desencriptar");

               

                private int clave = 0;

               

                public CaesarCipherApplet()

                {

                               for (int i=0; i<26;i++) escojerClave.add(" "+i);

                               layoutApplet();

                               escojerClave.addItemListener(new ChoiceHandler());

                               encrypt.addActionListener(new ButtonHandler());

                               decrypt.addActionListener(new ButtonHandler());

                               resize(400,400);

                }

                private void layoutApplet()

                {

                               Panel keyPanel = new Panel();

                               keyPanel.add(new Label("Clave: "));

                               keyPanel.add(escojerClave);

                               keyPanel.add(encrypt);

                               keyPanel.add(decrypt);

                               Panel textPanel = new Panel();

                               Panel textPanel1 = new Panel();

                               Panel textPanel2 = new Panel();

                               textPanel1.add( new Label("   Texto Plano   "));

                               textPanel1.add(textoPlano);

                               textPanel2.add(new Label("   Texto Cifrado   "));

                               textPanel2.add(textoCifrado);

                               textPanel.setLayout( new GridLayout(2,1));

                               textPanel.add(textPanel1);

                               textPanel.add(textPanel2);

                               setLayout(new BorderLayout());

                               add("North", keyPanel);

                               add("Center", textPanel);

                }

                class ChoiceHandler implements ItemListener

                {

                               public void itemStateChanged(ItemEvent e)

                               {

                                               clave = new Integer(escojerClave.getSelectedIndex()).intValue();

                               }

                }

                class ButtonHandler implements ActionListener

                {

                               public void actionPerformed(ActionEvent e)

                               {

                                               if(e.getActionCommand().equals(encrypt.getLabel()))

                                                               textoCifrado.setText(CaesarCipher.encriptar(textoPlano.getText(),clave));

                                               else if (e.getActionCommand().equals(decrypt.getLabel()))

                                                               textoPlano.setText(CaesarCipher.desencriptar(textoCifrado.getText(),clave));

                               }

                }

}

 

                       

           

El código de la clase que encripta CaesarCipher.java:             

           

public class CaesarCipher

{

                public static String encriptar(String s, int clave)

                {

                               String retorno = "";

                               for (int i = 0; i < s.length();i++)

                               {

                                               char c = s.charAt(i);

                                               c = encriptar(c,clave);

                                               retorno += String.valueOf(c);

                               }

                               return retorno;

                }

                public static String desencriptar(String s, int clave)

                {

                               return encriptar(s, - clave);

                }

 

                public static char encriptar(char c, int clave)

                {

                               if(c >= 'a' && c<= 'z') c = Character.toUpperCase(c);

                               if(c >= 'A' && c<= 'Z') c = rotar(c,clave);

                               return c;

                }

                public static char desencriptar(char c, int clave)

                {

                               if( c < 'A' || c > 'Z') return c;

                               else return rotar(c , - clave);

                }

 

                private static char rotar(char c, int key)

                {

                               key = key % 26;

                int n = ( c -  'A' + key ) % 26;

                               if(n < 0) n += 26;

                return (char) (n + 'A');

                }

}