Metodo de Criptografia

2 respostas
lordtiago

Estou testando um exemplo de criptografia simples,
mas não estou enxergando o erro.
Se alguém puder me ajudar, a classe é esta:

package criptografia;

public class Cezar{
   /* String alfabeto[] = {"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"};*/
  String alfabeto = "abcdefghijklmnopqrstuvwxyz";
 String textoCriptografado;

    Cezar(){
       criptografa("abc",3);
       System.out.println(textoCriptografado);
    }
    
    
   public void criptografa(String cript, int chave){
      //  char[] textoPuro = cript.toCharArray();
      int aux;
      
        for(int i=0; i< cript.length()+1;i++){
            
            for(int j=0; j<26;j++){
                
                if(alfabeto.charAt(j)==cript.charAt(i)){
                aux=j+chave;
                
                if(aux>26){aux=aux-27;}
                
                textoCriptografado = alfabeto.substring(aux);
                }
               
            }
        }
        
       
   }
   
   public String decripta(String cript){
       return "";
   }
    

public static void main (String args[]){
    Cezar teste = new Cezar();
    
    
}

}

2 Respostas

davidtiagoconceicao

Olá lordtiago.
Pelo que pude observar, o algoritmo utiliza a Cifra de César para criptografar a mensagem.
Observei também que o método de decriptação não efetua operação alguma.
Mas não entendi sua dúvida. O que está ocorrendo? Está ocorrendo alguma exception? Você não entendeu alguma parte do código?

lordtiago
Olá! Primeiramente obrigado pela atenção. Tinha ocorrido uma Exception, mas era marcação minha.
for(int i=0; i< cript.length()+1;i++){
Este código estourava a procura na lista, pois na ultima iteração chamava uma posição a mais, que não existe. Um erro bobo de falta de atenção minha. Agora funciona normalmente, o novo código ficou assim:
package criptografia;

public class Cezar{ 
  String alfabeto = "abcdefghijklmnopqrstuvwxyz";
 String textoCriptografado="";
 String textoDecriptografado="";

    public String getTextoCriptografado() {
        return textoCriptografado;
    }

    public void setTextoCriptografado(String textoCriptografado) {
        this.textoCriptografado = textoCriptografado;
    }

    public String getTextoDecriptografado() {
        return textoDecriptografado;
    }

    public void setTextoDecriptografado(String textoDecriptografado) {
        this.textoDecriptografado = textoDecriptografado;
    }
 
   public Cezar(){
      
    }
    
    
   public void criptografa(String cript, int chave){
     int aux;
      
        for(int i=0; i< cript.length();i++){
            
            for(int j=0; j<26;j++){
                
                if(alfabeto.charAt(j)==cript.charAt(i)){
                aux=j+chave;
                
                while(aux>25){
                    aux=aux-26;
                }
                
                textoCriptografado += alfabeto.substring(aux, aux+1);
                }
               
            }
        }
        
       
   }
   
   public void decripta(String cript, int chave){
        int aux;
      
        for(int i=0; i< cript.length();i++){
            
            for(int j=0; j<26;j++){
                
                if(alfabeto.charAt(j)==cript.charAt(i)){
                aux=j-chave;
                
                while(aux<0){aux=aux+26;}
                
                textoDecriptografado += alfabeto.substring(aux, aux+1);
                }
               
            }
        }
   }

Valeu pela atenção

Criado 18 de novembro de 2008
Ultima resposta 19 de nov. de 2008
Respostas 2
Participantes 2