Java - Encriptacion

 
Vista:
Imágen de perfil de Diego

Encriptacion

Publicado por Diego (23 intervenciones) el 02/04/2014 08:04:44
ola tengo un problema con encriptacion en java como mando a traer el metodo codigovigenere y decodvigenere al metodo main esta es mi clase
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
public class Vigenere {
    private String mensaje;
    private String clave;
    private String codificada="";
    private String decodificada="";
    private char [] alfabeto=new char[]{'a','b','c','d','e','f','g','h','i','j','k','l',
                                        'm','n','ñ','o','p','q','r','s','t','u','v','w',
                                        'x','y','z'};
 
    public Vigenere(String mensaje, String clave) {
        this.mensaje = mensaje;
        this.clave = clave;
    }
 
    public void codVigenere(){
        int posicion_nuevo_caracter;
        char nuevo_caracter;
        int posicion_alfabeto_mensaje;
        int posicion_alfabeto_clave;
        for(int i=0, j=0; i < this.mensaje.length(); i++){
 
            if(this.mensaje.charAt(i) != ' '){
 
                posicion_alfabeto_mensaje = obtenerPosicion(this.mensaje.charAt(i));
                posicion_alfabeto_clave = obtenerPosicion(this.clave.charAt(j));
                posicion_nuevo_caracter = mod((posicion_alfabeto_mensaje + posicion_alfabeto_clave), this.alfabeto.length);
                nuevo_caracter = alfabeto[posicion_nuevo_caracter];
                this.codificada = this.codificada + nuevo_caracter;
 
                if(j == this.clave.length() - 1)
                    j = 0;
                else
                    j++;
            }
            else{
                this.codificada = this.codificada + " ";
            }
        }
    }
 
    public void decodVigenere(){
        int posicion_nuevo_caracter;
        char nuevo_caracter;
        int posicion_alfabeto_mensaje;
        int posicion_alfabeto_clave;
 
        for(int i=0, j=0; i < this.mensaje.length(); i++){
 
            if(this.mensaje.charAt(i) != ' '){
 
                posicion_alfabeto_mensaje = obtenerPosicion(this.mensaje.charAt(i));
                posicion_alfabeto_clave = obtenerPosicion(this.clave.charAt(j));
                posicion_nuevo_caracter = mod((posicion_alfabeto_mensaje - posicion_alfabeto_clave), this.alfabeto.length);
                nuevo_caracter = alfabeto[posicion_nuevo_caracter];
                this.decodificada = this.decodificada + nuevo_caracter;
 
                if(j == this.clave.length() - 1)
                    j = 0;
                else
                    j++;
            }
            else{
                this.decodificada = this.decodificada + " ";
            }
        }
    }
 
    public int obtenerPosicion(char c){
        for(int i=0; i < this.alfabeto.length; i++){
            if(c == this.alfabeto[i])
                return i;
        }
        return -1;
    }
 
    public int mod (int a,int b){
        int res = a % b;
        return res >= 0 ? res : res + b;
    }
 
 
    public String getCodificada() {
        return codificada;
    }
 
    public String getDecodificada() {
        return decodificada;
    }
 
}

y este es mi metodo main
1
2
3
4
5
public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          System.out.println("Introdusca un cadena");
          String cadena=sc.nextLine();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder