Problema con encriptador

Iniciado por Debci, 15 Noviembre 2009, 13:59 PM

0 Miembros y 2 Visitantes están viendo este tema.

Debci

Hola a todos, estoy haciendo una clase para cifrar textos, pero tengo un problema, no se muestra en pantalla lo cifrado :s
Aqui el codigo que encontré:
Código (java) [Seleccionar]

import java.io.*;
public class encriptador  {
    //instance
    private String claveOriginal="";
    private String textoOriginal="";
    private String claveActual="";
    private char[][] matriz;
    //reader
    //BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); modo consola
    //methods
    public String decodificar(String texto) {
        int repeticiones=0;
        int jSize= claveActual.length();
        while (repeticiones<jSize) {
            boolean cambio=false;
            int i=repeticiones;
            claveActual="";
            for (int j=0; j<jSize;j++)
                claveActual=claveActual+matriz[0][j];
            while ((!cambio)&&(i<jSize)) {
                    if (claveOriginal.charAt(repeticiones)==claveActual.charAt(i)){
                    modificarArreglo(i,repeticiones);
                    cambio=!cambio;
                }
                else
                    i++;
            }
            repeticiones++;
    }
    String output="";
    for (int i=1; i<matriz.length;i++)
        for (int j=0; j<matriz[0].length;j++)
            output=output + matriz[i][j];
    return output;
}
    public String codificar(String texto, String clave){
        claveOriginal=clave;
        textoOriginal=texto;
        int jSize= claveOriginal.length();
        int iSize= (textoOriginal.length()/jSize)+1;
        if ((textoOriginal.length()%jSize)!=0)
            iSize++;
        /*debug
        System.out.println("Filas:" + iSize + "Columnas:"+jSize);
        */
        matriz= new char[iSize][jSize];
        int charPos=0;
        int keyPos=0;
        for (int i=0; i<claveOriginal.length();i++) {
            matriz[0][i]=claveOriginal.charAt(i);
        }
        for (int i=1; i<iSize;i++) {
            for (int j=0;j<jSize;j++) {
                try {
                    matriz[i][j]=textoOriginal.charAt(charPos);
                    charPos++;
                }
                catch (Exception e) {matriz[i][j]=' '; charPos++;}
            }
        }
        /*debug
        for (int i=0; i<iSize;i++) {
            for (int j=0; j<jSize;j++) {
                System.out.print(matriz[i][j]);
            }
        }
        */

        int repeticiones=0;
        while (repeticiones<jSize) {
            char[] filaCero= new char[jSize-repeticiones];
            for (int j=repeticiones; j<jSize; j++) {
                filaCero[j-repeticiones]=matriz[0][j];
            }
            int i=0;
            boolean cambio=false;
                    //tamaño de filaCero
            while ((i<jSize-repeticiones)&&(!cambio)){
                if (esElMenor(filaCero,filaCero[i])){
                    modificarArreglo(i+repeticiones,repeticiones);
                    cambio=!cambio;
                }
                i++;
            }
            repeticiones++;
        }
        /*debug
        for (int i=0; i<iSize;i++) {
            for (int j=0; j<jSize;j++) {
                System.out.print(matrizAuxiliar[i][j]);
            }
        }
        */
       String output="";
        for (int j=0; j<jSize;j++) {
            for (int i=0; i<iSize;i++) {
                if (i==0) claveActual=claveActual + matriz[i][j];
                output=output+matriz[i][j];
            }
        }
        return output;
        /*debug
        for (int j=0; j<jSize;j++) {
            for (int i=0; i<iSize;i++) {
                System.out.print(matrizFinal[j][i]);
            }
            System.out.println();
        }
        */

     }
    public void modificarArreglo(int colActual, int rep) { //intercambia las columnas que pasan como param
        /*for (int i=0; i<matriz.length;i++)
            matrizAuxiliar[i][rep]=matriz[i][colActual];*/
        char[]aux = new char[matriz.length];
        for (int i=0; i<matriz.length;i++){
            aux[i]=matriz[i][rep];
            matriz[i][rep]=matriz[i][colActual];
            matriz[i][colActual]=aux[i];
        }
    }

    public boolean esElMenor(char[] arreglo, char car) {
        boolean menor=true; //asume que es el menor.
        int i =0;
        if (car==' ')
            menor = false;
        else {
            while ((i<arreglo.length)&&(menor)) {
                if ((arreglo[i]!=' ')&&(car!=' ')&&(arreglo[i]<car))
                    menor=!menor;
                else
                    i++;
                }
            }
        return menor;
    }
    public static void main(String args[]) {
        encriptador encriptador = new encriptador();
        encriptador.codificar("Hola", "debci");
    }

}//fin clase encriptador


Tengo un out para que muestre pero no sale nada.

Saludos

Leyer

dices que no de muestra nada que raro por que a mi si me lo muestra y funciona bien :-\

Saludos.

Debci

Cita de: L-EYER en 15 Noviembre 2009, 15:06 PM
dices que no de muestra nada que raro por que a mi si me lo muestra y funciona bien :-\

Saludos.
no me jodas, que te sale?

Saludos

Leyer

Text Encript : blcadHeoi
Descript: Hola

Saludos

Debci

Cita de: L-EYER en 15 Noviembre 2009, 15:30 PM
Text Encript : blcadHeoi
Descript: Hola

Saludos
a mi no me da salida....
como lo haces? le has añadido algo?

Saludos


Leyer

no que yo sepa! finaje que no estas mandando nada a la salida estandar y todos tus metodos estan retornando string
Código (java) [Seleccionar]

    public static void main(String args[]) {
        encriptador encriptador = new encriptador();
        String t = encriptador.codificar("Hola", "debci").trim();
        System.out.println("Text Encrypt : "+t);
        System.out.println("Descrypt: "+encriptador.decodificar(t));
    }

Debci

Cita de: L-EYER en 15 Noviembre 2009, 16:03 PM
no que yo sepa! finaje que no estas mandando nada a la salida estandar y todos tus metodos estan retornando string
Código (java) [Seleccionar]

    public static void main(String args[]) {
        encriptador encriptador = new encriptador();
        String t = encriptador.codificar("Hola", "debci").trim();
        System.out.println("Text Encrypt : "+t);
        System.out.println("Descrypt: "+encriptador.decodificar(t));
    }

Coño es verdad, deje el out, pensé que lo habia añadido a los metodos para que devolviese un out xDDDDD
que tonteria xDDDDDD
Saludos

Leyer

jajaj  ;D ;D como se te pudo olvidar eso :)

Saludos.