É galera… depois de 100 e poucas respostas… mais de 600 visualizaçoes (mais de 200 saum minhas!! rs), e mtas quebranças de cabeça… consegui terminar o codigo… nao to com ele aqui pq to na facul.,… mas funcionou direitinho e me fez entender um pouco de java, o que tbm me fez interessar por ele…
brigadaum mesmo, pode ter certeza que agora que conheci java e o PJ… vou estar por aki sempre… vou comprar o livro e me dedicar…
valew pessoal, nao vou citar nomes pq esqueci… rss… mas todos que me ajudaram!!
alguem podia explicar o codigo aqi postado correcto ponto por ponto ou entao postar um codigo mais simples q faça os mesmo, pq axo q ainda n estudei por exemplo “javax.swing.JOptionPane” isto. e tb n sei como mudar o aspecto as janelas( as janelas que ele pergunta quando e pa meter o texto)
public class Vigenere {
//palavra que sera encriptada
public String palavra;
//palavra chave, que sera menor que a palavra acima
public String chave;
//resultado da encriptacao
public String resultado = “”;
public void cripto() {
//recebe a palavra a ser encriptada
this.palavra = JOptionPane.showInputDialog("Digite o texto a ser criptografado:");
//recebe a palavra-chave
this.chave = JOptionPane.showInputDialog("Insira sua chave:");
//este ciclo vai percorrer toda a palavra passada
for(int i = 0; i < palavra.length(); i++) {
int charPalavra = palavra.charAt(i) - 97;
int charChave = chave.charAt(i % chave.length()) - 97;
int result = ((charPalavra + charChave) % 26) + 97;
this.resultado += (char) result;
}
//aqui é mostrada a string com a palavra criptografada
JOptionPane.showMessageDialog(null, this.resultado, "Texto encriptado", JOptionPane.PLAIN_MESSAGE);
}
public void descripto() {
//recebe a palavra a ser decriptada
this.palavra = JOptionPane.showInputDialog("Digite o texto a ser descriptografado:");
//recebe a palavra-chave
this.chave = JOptionPane.showInputDialog("Insira a chave usada:");
//este laço vai percorrer toda a palavra passada
for(int i = 0; i < palavra.length(); i++) {
int charPalavra = palavra.charAt(i) - 97;
int charChave = chave.charAt(i % chave.length()) - 97;
int temp = charPalavra - charChave;
temp = temp < 0 ? 26 + temp : temp % 26;
int result = 97 + temp;
this.resultado += (char) result;
}
//aqui é mostrada a string com a palavra descriptografada
JOptionPane.showMessageDialog(null, this.resultado, "Texto encriptado", JOptionPane.PLAIN_MESSAGE);
}
public void perguntar() {
String[] possiveis = {"Criptografar", "Descriptografar"};
int opcao = JOptionPane.showOptionDialog(null,
"Que tipo de operação você deseja realizar?",
" $ Cifra de Vigenere",
JOptionPane.YES_OPTION,
JOptionPane.PLAIN_MESSAGE,
null,
possiveis,
null);
switch (opcao) {
case 0:
this.cripto();
break;
case 1:
this.descripto();
break;
}
System.exit(0);
}
public static void main( String[] args ){
Vigenere v = new Vigenere();
v.perguntar();
}
}
o que faz aqui o charAT
no metodo do public void descripto o ciclo esta a dar dor de cabeça -.- alguem detalha todo ele, passo a passo?
Olá. É falta de educação ficar pedindo urgência em fóruns. No Brasil, hoje é feriado, provavelmente pouca gente irá ler os tópicos.
Além disso, quando for postar códigos, por favor, use a tag code:
Finalmente, procure explicar melhor sua dúvida. Ninguém vai pegar um código daqui e parar para te explicar linha-a-linha, ou montar um exemplo mais simples.
Seria importante dizer, por exemplo, o que você quer fazer.
Isso é algum trabalho que seu professor pediu? Qual o objetivo do programa que você quer construir?
Qual é o problema que você precisa resolver? E o que você já sabe de Java?
o professor pediu. temos de fazer a cifra de vigenere. aceita uma palavra a chave e ele codifica ou descodifica. ja postaram o codigo direito para o problema como o q eu postei mas ha coisas que ainda n percebo. é que fazer o codigo do zero nao percebo assim tanto ainda nao
Alguem consegue fazer em vez de colocarmos a chave e o texto para cifrar, colocar o texto ja cifrado e o programa devolver a mensagem original e a chave que a originou?