elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda Cifrado ARC4/RC4 en Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda Cifrado ARC4/RC4 en Java  (Leído 3,163 veces)
BloodSharp


Desconectado Desconectado

Mensajes: 540


Crianosfera 5 in comming!!!


Ver Perfil
Ayuda Cifrado ARC4/RC4 en Java
« en: 26 Febrero 2014, 05:03 »

Buenas, quería saber si alguién me podría dar una mano. Estaba armando un código para cifrar un archivo cualquiera mediante RC4, el problema es que me genera una excepción (ArrayIndexOutOfBoundException) cuando intento ejecutarlo lo cual es raro ya que pude ejecutar el mismo código ligeramente modificado en C++(WINAPI) y C#... Si alguien me dá una mano se lo agradecería.

Código
  1.    private byte[] RC4(byte[] szBuf,byte[] szKey,int dwBufLen,int dwKeyLen){
  2.        int i,j=0;
  3.        int []s=new int[256];
  4. int dw;
  5. byte tmp;
  6. byte[] Buf=szBuf;
  7. byte[] Key=szKey;
  8. for(i=0;i<256;i++){
  9.            s[i]=i;
  10. }
  11. for(i=0;i<256;i++){
  12.            j=(j+s[i]+Key[i%dwKeyLen])%256;
  13.            tmp=(byte)s[i];
  14.            s[i]=s[j];
  15.            s[j]=(int)tmp;
  16. }
  17. for(dw=0;dw<dwBufLen;dw++){
  18.            i=(i+1)%256;
  19.            j=(j+s[i])%256;
  20.            tmp=(byte)s[i];
  21.            s[i]=s[j];
  22.            s[j]=(int)tmp;
  23.            Buf[dw]^=(byte)s[(s[i]+s[j])%256];
  24.        }
  25. return Buf;
  26.    }
  27.    private void btnCifrarActionPerformed(java.awt.event.ActionEvent evt) {                                          
  28.        if(txtArchivo.getText().length()==0)
  29.            JOptionPane.showMessageDialog(this,"No hay Archivo, seleccione uno...","RC4 para Archivos - BloodSharp",JOptionPane.ERROR_MESSAGE);
  30.        else if(txtPassword.getText().length()==0)
  31.            JOptionPane.showMessageDialog(this,"Escriba una contraseña...","RC4 para Archivos - BloodSharp",JOptionPane.ERROR_MESSAGE);
  32.        else{
  33.            try{
  34.                File file=new File(txtArchivo.getText());
  35.                int longitud=(int)file.length();
  36.                byte[] Bytes=new byte[longitud];
  37.                FileInputStream fileInput=new FileInputStream(file);
  38.                BufferedInputStream bufferedInput = new BufferedInputStream(fileInput);
  39.  
  40.                bufferedInput.read(Bytes,0,longitud);
  41.                Bytes=RC4(Bytes,txtPassword.getText().getBytes(),longitud,txtPassword.getText().length());
  42.                fileInput.close();
  43.                bufferedInput.close();
  44.  
  45.                FileOutputStream fileOutput=new FileOutputStream(file);
  46.                BufferedOutputStream bufferedOutput = new BufferedOutputStream(fileOutput);
  47.                bufferedOutput.write(Bytes,0,longitud);
  48.                fileOutput.close();
  49.                bufferedOutput.close();
  50.  
  51.                JOptionPane.showMessageDialog(this,"El archivo "+txtArchivo.getText()+" fue Cifrado/Descifrado","RC4 para Archivos - BloodSharp",JOptionPane.INFORMATION_MESSAGE);
  52.            }
  53.            catch(Exception e){
  54.                JOptionPane.showMessageDialog(this,e.getClass().toString()+" "+e.getMessage(),"RC4 para Archivos - BloodSharp",JOptionPane.ERROR_MESSAGE);
  55.            }
  56.        }
  57.    }

PS: El código de RC4 lo saque del foro: http://foro.elhacker.net/programacion_cc/encriptacion_rc4arc4-t210711.0.html;msg1000447#msg1000447

B#


« Última modificación: 26 Febrero 2014, 05:08 por IEAX » En línea



Gh057


Desconectado Desconectado

Mensajes: 1.190



Ver Perfil
Re: Ayuda Cifrado ARC4/RC4 en Java
« Respuesta #1 en: 26 Febrero 2014, 11:51 »

hola IEAX, por favor fíjate esta implementación del algoritmo rc4 y los comentarios sobre las excepciones en java a nivel byte:

 -> http://stackoverflow.com/questions/12289717/rc4-encryption-java

espero que te sea útil. saludos.


En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
BloodSharp


Desconectado Desconectado

Mensajes: 540


Crianosfera 5 in comming!!!


Ver Perfil
Re: Ayuda Cifrado ARC4/RC4 en Java
« Respuesta #2 en: 27 Febrero 2014, 00:50 »

hola IEAX, por favor fíjate esta implementación del algoritmo rc4 y los comentarios sobre las excepciones en java a nivel byte:

 -> http://stackoverflow.com/questions/12289717/rc4-encryption-java

espero que te sea útil. saludos.

Lo he leído e intentado de esa manera, pero al final el archivo cifrado queda totalmente vacío... He también analizado el código y hace prácticamente lo mismo pero en lugar de x % 256 usan x & 0xFF lo cuál termina dando todo completamente distinto el resultado... Igual gracias por la respuesta  ;D

EDIT: Ya lo pude solucionar el problema del archivo vacío y funciona perfectamente el cifrado ahora...


B#
« Última modificación: 27 Febrero 2014, 01:17 por IEAX » En línea



Gh057


Desconectado Desconectado

Mensajes: 1.190



Ver Perfil
Re: Ayuda Cifrado ARC4/RC4 en Java
« Respuesta #3 en: 27 Febrero 2014, 01:36 »

jejej me alegro, saludos
En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda Archivo cifrado
Criptografía
jagb80 3 2,771 Último mensaje 6 Junio 2010, 02:30
por jagb80
Ayuda con el cifrado de hill
Criptografía
philipjfray 0 1,457 Último mensaje 17 Junio 2013, 00:44
por philipjfray
[Ayuda] Encriptacion ARC4
Criptografía
manulaiko 2 2,341 Último mensaje 23 Marzo 2014, 04:26
por manulaiko
cifrado Java - PHP con resultados diferentes.
Programación General
turion 3 2,250 Último mensaje 9 Octubre 2016, 00:22
por 6hiii
Ayuda con proyecto de cifrado simple en java
Java
Alfrikmx 0 978 Último mensaje 4 Noviembre 2016, 05:26
por Alfrikmx
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines