Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

23/12/09

Codigo Cesar: Algoritmo de encriptamiento en java

JAN29


Utilizado, de ahí su nombre, por Julio César para comunicarse con sus oficiales, consiste en sustituir cada letra del mensaje por la que está n posiciones más adelante o atrás en el alfabeto.

Si n = 3, la A se sustituiría por la D, la B por E, la C por la F y así sucesivamente. De este modo, la palabra ABC se transforma en DEF encriptada, siendo n la llave (key) para poder decifrarla.

Paso 1: Crea un nuevo proyecto en Netbeans y agreaga un jFrame y añade los siguientes objetos.

Paso 2: crea una nueva clase cesar.java y añade el codigo:


/**
 * @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */
public class cesar {
    
private String tabla = "abcdefghijklmnopqrstuvwxyzáéíóú 1234567890@.,;:-+*/$#¿?!¡=()[]{}";

    public cesar(){        
    }
        
    public String Encriptar(String t, int key){       
        String texto = LimpiarCadena(t);
        //aqui se almacena el resultado
        String res = "";        
        for(int i = 0; i < texto.length();i++)
        {
            //busca la posicion del caracter en la variable tabla
            int pos = tabla.indexOf(texto.charAt(i));
            //realiza el reemplazo
            if ((pos + key) < tabla.length()){
                res = res + tabla.charAt(pos+key);
            }
            else
            {
                res = res + tabla.charAt((pos+key) - tabla.length());
            }         
        }        
        return res;
    }
    
    public String Desencriptar(String t, int key){        
        String texto = LimpiarCadena(t);
        String res = "";        
        for(int i = 0; i < texto.length();i++)
        {            
            int pos = tabla.indexOf(texto.charAt(i));            
            if ((pos - key) < 0){
                res = res + tabla.charAt((pos-key) + tabla.length());
            }
            else
            {
                res = res + tabla.charAt(pos-key);
            }         
        }        
        return res;
    }
    
    private String LimpiarCadena(String t){
        //transforma el texto a minusculas        
        t = t.toLowerCase();
        //eliminamos todos los retornos de carro
        t = t.replaceAll("\n", "");  
        //eliminamos caracteres prohibidos
        for(int i = 0; i < t.length();i++)
        {
            int pos = tabla.indexOf(t.charAt(i));
            if (pos == -1){
                t = t.replace(t.charAt(i), ' ');
            }
        }        
        return t;
    }           
}

Paso 3: para ejecutar el proyecto coloca el siguiente codigo en los jButton (Encriptar y desencriptar)

private void cmdEncriptarActionPerformed(java.awt.event.ActionEvent evt) {                                             
        String t = texto1.getText();
        int k = Integer.parseInt(txtkey.getText());
        if (k <=10){texto2.setText(c.Encriptar(t, k));}        
}     
private void cmdDesencriptarActionPerformed(java.awt.event.ActionEvent evt) {                                                
        String t = texto1.getText();
        int k = Integer.parseInt(txtkey.getText());
        if (k <=10){texto2.setText(c.Desencriptar(t, k));}
}    


Esta es una variante del algoritmo original del cesar que aparte de tomar en cuenta el abcdario, tambien añade el reconocimiento de numeros y de vocales acentuadas, asi como de algunos simbolos adicionales. Ademas el "Key", que por defecto es 3, puede ser cambiada a cualquier otro valor.

Pero como aprender es divertido, pero da flojera, para que pruebes este algoritmo te dejo un premio.


Esta linda señorita se llama carlita si quieres saber mas de ella y chatear por msn, te dejo mas datos y su correo aqui abajo:


ávkhz7shz7jvzhz7xél7whzhu7lu7áé7ípkh///
7klwluklu7kl7sh7mély1h7 7ívséuáhk7kl7áé7jvyh15u///
/lthps¿7jhyspáh?jhs*ováthps/jvtjpékhk7kl7vypnlu¿7jvjo
hihtih$7ivspíphzpáéhjpvu7zluáptluáhs¿7lu7éuh7ylshjp5ut
l7puálylzhu¿7ovtiylziézjv¿7htpzáhk$7jpáhz$7jvuáhjávz7
wyvmlzpvuhslz


si te interesa, descifre el codigo, suerte.


14 comentarios:

Anónimo dijo...

Hola soy un aficionado a la programacion y realmente me gusta pero no alcanzo a entender esta parte: que es c??????? me refiero a tu codigo.. me podrias explicar porfa

private void cmdDesencriptarActionPerformed(java.awt.event.ActionEvent evt) {
String t = texto1.getText();
int k = Integer.parseInt(txtkey.getText());
if (k <=10){texto2.setText(----?>>>c<<??.Desencriptar(t, k));}
}

jc mouse dijo...

"c" es la INSTANCIA de clase de la clase "cesar.java"

osea

se declara en el JFrame

cesar c = new cesar();

para poder utilizar sus metodos en el JFrame, asi

c.Desencriptar(STRING,INT)

saludos

Skellingthon dijo...

hola que tal muchas gracias por el codigo pero tengo unas dudas acerca del punto 3 es que no se bien en donde poner dicho codigo que mencionas dices que en los jbuttons pero cuando los introduzco ahi me marca algunos errores te agradeceria mucho si me explicas paso a paso como ponerlos ya que este Codigo lo necesito mucho
De ante mano Gracias

Mouse dijo...

creo saber que error es el que te sale, pero para estar seguros, porque no pegas el tipo de error aqui, y lo chekeamos mejor XD

Skellingthon dijo...

te mande los errores que me salieron x este medio pero creo k no salio por exceso de texto xD
si tienes algun correo para ponerme en contacto contigo te lo agradeceria k me lo hicieras conocer
Gracias una vez mas

Skellingthon dijo...

Amigo espero hayas leido mi comentario y ojala pronto me puedas ayudar con mi problema que te habia mencionado porque este codigo me URGE MUCHO gracias

Anónimo dijo...

q onda a mi si me corrio gracias por el codigo la prueba esta q el codigo se desencripta con 7 y si salen los datos bye y gracias por el aporte ah y un consejo depuren antes de correr si les marca el error del string "".. pongan un numero menor sin cerrar la ventana y denle encriptar si corre muy bien

Anónimo dijo...

hola tengo un problema
para eliminar los saltos de carro estoy programando en java J2ME y el codigo no es compatible en especifico ahi no existe el replceAll solo el replace pero solo funciona con variables tipo char sabes alguna manera de hacerlo similar aqui ya que me parecio muy util tu aplicacion

extraterrestre dijo...

ola necesito ayuda necesito acer un programa de encriptacion y descencriptacion en java sin usar el diseñador encritando archivos desde una ruta especifica

mouse dijo...

lo que tu quieres es un programa sin interfaz, es lo mismo solo debes hacer unos pequeños cambios al codigo

MomO dijo...

waoo estan de poca tus blogs.. Felicidades erez un buenazoOo.
Gracias x tus aportes...

Anónimo dijo...

Una inquietud, me salen dos errores programando el botón de cifrar, es este:

Línea 1 = String t = TextoaCifrar.getText();
Línea 2 = int k = Integer.parseInt(txtKey.getText());
línea 3 = if (k <= 230){TextoCifrado.setText(c.Encriptar(t,k));}

Me sale estos Erores:El segundo getText en la linea 2 y la palabra Encriptar en la línea 3:
Una ayuda por favor.

Este codigo lo use para la clase JFrame:

public class Cifrar {

private String ASCIITable = "ABCCHDEFGHIJKLLLMNÑOPQRSTUVWXYZabcchdefghijklllmnñopqrstuvwxyz0123456789!#$&/()=?'¿¡@*`^+´ç¨Ç {}[],;.:-_<>ºª";

public Cifrar(){
}


public String Encriptar (String t, int key){
String texto = LimpiarCadena(t);
String res = "";
for(int i = 0; i < texto.length();i++)
{
int pos = ASCIITable.indexOf(texto.charAt(i));
if ((pos + key) < ASCIITable.length()){
res = res + ASCIITable.charAt(pos+key);
}
else
{
res = res + ASCIITable.charAt((pos+key) - ASCIITable.length());
}
}
return res;
}

private String LimpiarCadena(String t) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

Anónimo dijo...

hola problemas con el punto tres me dice que gracias

Davinson Hernandez dijo...

oyes amigo me degaron la tarea de hacer eso pero no puedo con el codigo que tienes aqui en la paguina pasame tu archivo a mi orreo me ayudarias mucho enviamelo al correo davinson_fifa2014@hotmail.com

Post recomendado