Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - kondrag_X1

#121
Hola buenas, mirad tengo un pequeño problema tratando de hacer una clase del algoritmo de cifrado tripleDES

Adjunto código:

package algoritmos;

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;

public class TripleDES extends Algoritmo {
private String msg;
private byte [] msgCifrado;
private byte [] msgDescifrado;
private Cipher cifrador;
private Cipher descifrador;
private KeyGenerator keyGen;
private SecretKey claveTripleDES;

public TripleDES (String nombreAlgortimo, String mensaje){
this.nombreAlgortimo = nombreAlgortimo;
this.msg = mensaje;
this.isCreate = true;
try {

System.out.println(">> Creando TripleDES......");
generarKey();
cifrador = Cipher.getInstance(nombreAlgortimo+"/CBC/PKCS5Padding");
descifrador = Cipher.getInstance(nombreAlgortimo+"/CBC/PKCS5Padding");

} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("--------------- Generamos Clave ---------------");
System.out.println("Clave pública: "+ new String(claveTripleDES.getEncoded()));
System.out.println("------------------------------------------------");
}
@Override
public void cifrar() {
byte [] bytesMensaje = msg.getBytes();
try {
cifrador.init(Cipher.ENCRYPT_MODE, claveTripleDES);
msgCifrado = cifrador.doFinal(bytesMensaje);
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BadPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NullPointerException e){
e.printStackTrace();
}
System.out.println("--------------- TEXTO CIFRADO ---------------");
System.out.println("CLAVE Pública: " + new String(claveTripleDES.getEncoded()) + "\n");
System.out.println("Texto sin cifrar: "+msg);
        System.out.println("Texto cifrado : "+new String(msgCifrado));
        System.out.println("---------------------------------------------"); 
}

@Override
public void descifrar() {
try {
descifrador.init(Cipher.DECRYPT_MODE, claveTripleDES);
msgDescifrado = descifrador.doFinal(msgCifrado);
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
msgDescifrado = "error mensaje no descifrado".getBytes();
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BadPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println("--------------- TEXTO DESCIFRADO ---------------");
System.out.println("CLAVE Pública: " + new String(claveTripleDES.getEncoded()) + "\n");
System.out.println("Texto sin cifrar: "+msg);
System.out.println("Texto cifrado: "+new String(msgCifrado));
        System.out.println("Texto descifrado: "+new String(msgDescifrado));
        System.out.println("---------------------------------------------");
}

private void generarKey() throws NoSuchAlgorithmException{
        keyGen = KeyGenerator.getInstance(nombreAlgortimo);
        claveTripleDES = keyGen.generateKey();
}
}


y el problema es que cuando genero la clave y cifro todo va bien es cuando intento descifrar me sale el siguiente error. Ya se me han acabado las ideas. ¿ Alguien ha pasado por este problema o se le ocurre como solucionarlo?

adjunto código de la incidencia.
Citar
04-25 11:33:21.700: W/System.err(742): java.security.InvalidKeyException: no IV set when one expected
04-25 11:33:21.710: W/System.err(742):    at com.android.org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineInit(BaseBlockCipher.java:629)
04-25 11:33:21.720: W/System.err(742):    at javax.crypto.Cipher.init(Cipher.java:519)
04-25 11:33:21.720: W/System.err(742):    at javax.crypto.Cipher.init(Cipher.java:479)
04-25 11:33:21.720: W/System.err(742):    at algoritmos.TripleDES.descifrar(TripleDES.java:72)
04-25 11:33:21.730: W/System.err(742):    at com.AlarconMendez.cripto.MainActivity$1.onClick(MainActivity.java:43)
04-25 11:33:21.730: W/System.err(742):    at android.view.View.performClick(View.java:4204)
04-25 11:33:21.740: W/System.err(742):    at android.view.View$PerformClick.run(View.java:17355)
04-25 11:33:21.740: W/System.err(742):    at android.os.Handler.handleCallback(Handler.java:725)
04-25 11:33:21.740: W/System.err(742):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-25 11:33:21.740: W/System.err(742):    at android.os.Looper.loop(Looper.java:137)
04-25 11:33:21.750: W/System.err(742):    at android.app.ActivityThread.main(ActivityThread.java:5041)
04-25 11:33:21.750: W/System.err(742):    at java.lang.reflect.Method.invokeNative(Native Method)
04-25 11:33:21.750: W/System.err(742):    at java.lang.reflect.Method.invoke(Method.java:511)
04-25 11:33:21.760: W/System.err(742):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-25 11:33:21.760: W/System.err(742):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-25 11:33:21.760: W/System.err(742):    at dalvik.system.NativeStart.main(Native Method)

#122
Redes / Problema: Ataque a mis datos.
9 Marzo 2013, 16:33 PM
Buenas
Lo que me ha pasado es lo siguiente. tengo un ip intentando acceder a mi ordenador mediante un ataque de fuerza bruta. Tengo la ip que esta haciendo el ataque mi pregunta es ¿Como pueda saber si es el atacante el dueño de la ip o si por el contrario es un proxy? y ¿A donde debería dirigirme si quiero denunciarlo?

Gracias
#123
Programación C/C++ / puntero a funcion
30 Abril 2011, 15:55 PM
buenas hacia tiempo que no escribia aunque siempre andaba por aqui de post en post
el otro dia repasando un poco de c vi el tema este de puntero a funcion pero no recuerdo cual era el uso que le podia dar a esto. Si alguno sabe se lo agradeceria

//aqui esta el puntero a funcion
int (*punt) (int,int);

  int suma(int a , int b){
     return a+b;
  }

  int resta(int a , int b){
     return a-b;
  }

  *punt=suma;
   punt(2,3);

  *punt=resta;
   punt(5,1);
#124
alomejor te interesa utilizar JDialog es lo mismo xD ,bueno parecido a JFrame pero te lo habre aparte.

aki el link :http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JDialog.html
#125
Java / Re: Juego Hundir la Flota Con JAVA
7 Diciembre 2010, 15:34 PM
hola yo pienso que lo qe mas te interesa es la tercera opcion , es decir ,hacer un servidor sencillito el cual solo asocie jugadores y pase mensajes de uno a otro .

luego cada cliente que conecte es el qe trabajaria con la informacion que le llega.
#126
Java / Re: Ventanita en java
7 Diciembre 2010, 00:41 AM
señores despues de un rato largo dejandome los cuernos me he dado cuenta que lo que me faltaba era crear los objetos  JPanel

ejemplo:
PN_Botones = new JPanel();
#127
Java / Ventanita en java (Solucionado)
6 Diciembre 2010, 21:12 PM
hola buenas pues he estaod intentando hacer una interfaz grafica en java y no lo consigo y nada no hay manera haber si alguien me echa una mano.
Código (java) [Seleccionar]
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author Alarcon
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

   class DeleteRecordDialog extends JFrame implements ActionListener {
       //declaro los elementos de que voy a utilizar
      // Concesionario owner;

       //botones de accion
       JButton aceptar ;
       JButton cancelar;
       JButton mostrar ;

       //etiquetas
       JLabel tablas ;
       JLabel clPrimaria;

       //campo
       JTextField key;

       //contenedore
       JPanel PN_Tablas;
       JPanel PN_Recoger;
       JPanel PN_Botones;


       //creamos los botones
   //            ButtonGroup union =new ButtonGroup();
   //            for(int i=0;i<tableNames.;i++){
   //
   //            }
           public DeleteRecordDialog(){
   //                    super(owner,title,true);
   //                    this.owner=owner;

               //inicializamos los botones
               aceptar = new JButton("Aceptar");
               cancelar = new JButton("Cancelar");
               mostrar = new JButton("Mostrar Tabla");

               //inicializamos etiquetas
               tablas = new JLabel("Tablas");
               clPrimaria= new JLabel("Clave Primaria:");

               //inicializamos campo para recoger datos
               key = new JTextField("recoger id");

               //agregamos los contenedores
               PN_Tablas.add(tablas);

               PN_Recoger.add(clPrimaria);
               PN_Recoger.add(key);

               PN_Botones.add(aceptar);
               PN_Botones.add(cancelar);
               PN_Botones.add(mostrar);

               getContentPane().setLayout(new GridLayout(3,1));
               getContentPane().add(PN_Tablas);
               getContentPane().add(PN_Recoger);
               getContentPane().add(PN_Botones);

               setSize (320,200);
               setVisible(true);
               validate();

           }

   public void actionPerformed(ActionEvent e) {
       throw new UnsupportedOperationException("Not supported yet.");
   }
   public static void main (String arg []) {
       DeleteRecordDialog deleteRecordDialog = new DeleteRecordDialog();

   }
}


y el error :
Citarrun:
Exception in thread "main" java.lang.NullPointerException
       at DeleteRecordDialog.<init>(DeleteRecordDialog.java:59)
       at DeleteRecordDialog.main(DeleteRecordDialog.java:83)
Java Result: 1
GENERACIÓN CORRECTA (total time: 2 seconds)

#128
haber te da un error por qe la array se sale de tamaño en "buffer[i+1] == '*' " por que cuando llega al ultimo elemento tu le sumas uno en la posicion (i) y te sales fuera de la array. Lo que veo raro es que el error no sea array no found o algo parecido
#129
ok ,muchas gracias y perdona si te he ofendido con mi forma de escribir
#130
ok muchas gracias por la respuesta la verdad esqe me a servido de mucha ayuda el code no ta terminado y gracias por el consejo no cai en qe read te devolvia los bytes leidos , encuanto lo de 0 en vezde uno no tengo muy claro a lo qe te refieres si es

if(FD_ISSET(sockfd,&rset)==1)

segun lo que pude entender esta funcion "FD_SET()" te devuelve 1 si salta el descriptor y 0 cuando no salta.