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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Temas
Páginas: [1]
1  Programación / Java / Duda Cifrado Cesar por fuerza bruta? en: 28 Septiembre 2015, 23:29 pm
hola buen dia!  ;D , recurro a esto porque tengo la duda sobre como podria modidicar el metodo descifrarCesar (esto es para java) para poder hacer que me devuelva un listado de todas las palabras descifradas posibles, mi idea es poner un while y que dentro de este se quede el for, el while lo que me regresaria seria el parametro desplazamiento++, pero no encuentro la forma de que esto quede bien, disculpen estoy empezando y me confundo un poco con las estructuras de while y for, lo que quiero que haga el programa solo es que me de las 28 opciones posibles y despues que me de la opcion correcta descifrada, el programa completo es este:
_________________________________________________

[code ]
Código
  1. public class CifradoCesar {
  2.  
  3. public static String alfabetoCesar = "abcdefghijklmnñopqrstuvwxyz ";//"abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
  4.  
  5.  
  6. /**
  7.  * Función para cifrar una cadena conun desplazamiento x
  8.  * @param cadena
  9.  * @param desplazamiento
  10.  * @return
  11.  */
  12. public static String cifrarCesar(String cadena, int desplazamiento){
  13.  
  14.      String cesar="";//Cadena con el mensaje cifrado
  15.      for(int i = 0; i<cadena.length();i++){//Por cada caracter de la cadena original
  16.          int nuevaPosicion = (alfabetoCesar.indexOf(cadena.charAt(i)) + desplazamiento) % alfabetoCesar.length();//Posicion x + n mod 27
  17.          cesar = cesar + alfabetoCesar.charAt(nuevaPosicion);//Concatena texto cifrado
  18.      }
  19.      return cesar;
  20.  }
  21.  
  22. /**
  23.   * Función para descifrar una cadena con un desplazamiento x
  24.   * @param cesar
  25.   * @param desplazamiento
  26.   * @return
  27.   */
  28. public static String descifrarCesar(String cesar, int desplazamiento){
  29.     String cadenaDescifrada="";
  30.        for(int i = 0; i<cesar.length();i++){//el desplazamiento no debe ser mayor al tamaño de caracteres
  31.                int nuevaPosicion = (alfabetoCesar.indexOf(cesar.charAt(i))+alfabetoCesar.length()-(desplazamiento%alfabetoCesar.length()))%alfabetoCesar.length();//Posicion x - n mod 27
  32.                cadenaDescifrada+=alfabetoCesar.charAt(nuevaPosicion);//Concatena texto descifrado
  33.        }
  34.        return cadenaDescifrada;
  35.  
  36. }
  37.  
  38.  
  39.  
  40.    /**
  41.      * @param args the command line arguments
  42.      */
  43.    public static void main(String[] args) {
  44.        String cifrado =  "ldqcfdlcvdkfqgrirqvbqhlvqtfcvkzfqldqtizcvdqtfdqkfurjqbrjquvqbrqbvo";
  45.        System.out.println("Cifrado: " + cifrado);
  46.        System.out.println("Descifrado: "+ descifrarCesar(cifrado,0));
  47.  
  48.    }
  49.  
  50. }
  51.  
[/code ] [/quote]______________
y lo que quiero hacer con el metodo descifrarCesar es esto
while(desplazamiento <=cifrado.length()){
aqui todo el for que se encuentra en ese metodo
desplazamiento++;
}

pero me da error.
o alguien me podria dar otra sugerencia para modificar ese metodo y me regrese las 28 posibles respuestas????, es que no se me ocurre otra cosa.
NOTA: solo puedo modificar ese método.
Ya me desespere, llevo como una semana con esto  :-[
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines