Como fazer? (Dúvida)

14 respostas
Sandokhan

Como faço para pegar a string retornada e armazenar em outra para criar o método de desemcriptação?

import java.util.Scanner;
public class testeString {

public static String cripto(int chave, String msg)
{
	
	for (int i = 0; i < msg.length(); i++)
	{
		
			if(msg.charAt(i) > 31 && msg.charAt(i) < 65)
			{
				System.out.print((char)(msg.charAt(i)));
				continue;
			}
			int cifra1 = ((int)(msg.charAt(i))+chave);
			if(cifra1 > 90 && cifra1 <= 103)
			{
				System.out.print((char)((msg.charAt(i)+chave)-26));
				continue;
			}
			else if (cifra1 > 122)
			{
				System.out.print((char)((msg.charAt(i)+chave)-26));
				continue;
			}
			
				System.out.print((char)(msg.charAt(i)+chave));
			
	}
	return msg.toString();
}



public static void main(String[] args) {
	
	Scanner input = new Scanner(System.in);
	String msg;
	int chave, cifra, tamanhoString;
	
	System.out.print("Insira o msg: ");
	msg = input.nextLine();
	
	System.out.print("Insira a cifra: ");
	cifra = input.nextInt();
	
	chave = cifra % 26;
	tamanhoString = msg.length();
	
	System.out.print("\nmsg digitado: \n" + msg);
	System.out.print("\nCifra digitada: \n" + cifra);
	System.out.print("\nValor da chave: \n" + chave);
	System.out.println();
	
	String criptografa = cripto(chave, msg);
	
	System.out.print("\n\n\n"+ criptografa);
}

}

14 Respostas

G

cara, tem como postar o código formatado no esquema do forum?

G

Cara, tem como dar uma explicada?o que seria essa cifra, e nome de classe sempre se escreve com a primeira letra maiúscula

Sandokhan

Obrigado pelas dicas nas proximas formatarei conforme solicitado.

O que o código faz e simplesmente codificar uma string seguindo a cifra de cesar, só que neste caso o usuário informa qual o valor da rotação de letras.

O código funciona normal, infelizmente não consigo armazenar a string que é retornada para fazer a desencriptação, é possível fazer isso?!

Sandokhan
import java.util.Scanner;

public class TesteString

{
public static String cripto(int chave, String msg)
	{

		for (int i = 0; i < msg.length(); i++)
		{

			if(msg.charAt(i) > 31 && msg.charAt(i) < 65)
			{
			System.out.print((char)(msg.charAt(i)));
			continue;
			}
			int cifra1 = ((int)(msg.charAt(i))+chave);
			if(cifra1 > 90 && cifra1 <= 103)
			{
			System.out.print((char)((msg.charAt(i)+chave)-26));
			continue;
			}
			else if (cifra1 > 122)
			{
			System.out.print((char)((msg.charAt(i)+chave)-26));
			continue;
			}

			System.out.print((char)(msg.charAt(i)+chave));

			}
			return msg.toString();
	}



		public static void main(String[] args) {

		Scanner input = new Scanner(System.in);
		String msg;
		int chave, cifra, tamanhoString;

		System.out.print("Insira o msg: ");
		msg = input.nextLine();

		System.out.print("Insira a cifra: ");
		cifra = input.nextInt();

		chave = cifra % 26;
		tamanhoString = msg.length();

		System.out.print("\nmsg digitado: \n" + msg);
		System.out.print("\nCifra digitada: \n" + cifra);
		System.out.print("\nValor da chave: \n" + chave);
		System.out.println();

		String criptografa = cripto(chave, msg);

		}

}

G

Cria um método de desencriptação que recebe um String:
public void desencript(String stringEncript) poe exemplo e passa a String que o método cripto retorna

G

Cara, essa sua linha
String criptografa = cripto(chave, msg); esta armazenando a String codificada q vem do método já…agora vc cria outro método que faz o inverso e manda ela como argumento…

saco? =]

charleston10

funciona se voce colocar uma [size=14]TAG CODE [/size]aí no seu código…

cara, não é melhor vc usar uma biblioteca que faz tudo isso pra vc ?
Existe uma biblioteca que faz criptografia… a criptografia vai variar de
acordo com a sua senha q vc colocar na sua classe, ou seja ???’
Ninguem pode saber somente vc…

Da uma olhada…
http://javaaberto.blogspot.com.br/2012/11/criptografia.html

;]

marcospaulo.suporte

charleston10:
funciona se voce colocar uma [size=14]TAG CODE [/size]aí no seu código…

cara, não é melhor vc usar uma biblioteca que faz tudo isso pra vc ?
Existe uma biblioteca que faz criptografia… a criptografia vai variar de
acordo com a sua senha q vc colocar na sua classe, ou seja ???’
Ninguem pode saber somente vc…

Da uma olhada…
http://javaaberto.blogspot.com.br/2012/11/criptografia.html

;]

ÓTIMO…
Simples e fácil…

charleston10

marcospaulo.suporte

Você é de Leme aki do lado de Pira?"

marcospaulo.suporte

charleston10:
marcospaulo.suporte

Você é de Leme aki do lado de Pira?"

Opa cara… nem tinha visto sua assinatura…dificil isso eihn??.. nada fica perto da gente…kkk :smiley:

saudações…

charleston10

Opa cara… nem tinha visto sua assinatura…dificil isso eihn??.. nada fica perto da gente…kkk

saudações…

kkkk… verdade , viver no fim do mundo é díficil…

vou mandar um MP pra vc…

;]

Sandokhan

Valeu galera pelo ajuda, mas consegui fazendo de outra forma!!

G

Opa, Posta ai como vc conseguiu =]

Sandokhan

Uai simplesmente criei um StringBuilder resultado e em cada iteração o valor era armazenado em resultado.append, depois foi fácil pq o método retornava o valor!!

Exemplo:

[quote]

StringBuilder dresultado = <b>new</b> StringBuilder();

public static String cripto(int chave, String msg)

{

StringBuilder resultado = new StringBuilder();
<b>for</b> (int i = 0; i &lt; msg.length(); i++)
	{
			<b>int</b> cifra1 = ((int)(msg.charAt(i))+chave);
		
			<b>if</b>(msg.charAt(i) &gt; 31 && msg.charAt(i) &lt; 65)
			{
				resultado.append((<b>char</b>)(msg.charAt(i)));
				<b>continue;</b>
			}
			
			<b>if</b>(cifra1 &gt; 90 && cifra1 &lt;= 103)
			{
				resultado.append((<b>char</b>)((msg.charAt(i)+chave)-26));
				<b>continue;</b>
			}
			
			<b>else if</b> (cifra1 &gt; 122)
			{
				resultado.append((<b>char</b>)((msg.charAt(i)+chave)-26));
				<b>continue;</b>
			}
			
				resultado.append((<b>char</b>)(msg.charAt(i)+chave));
			
	}
	<b>return</b> resultado.toString();
}</p>

Não consegui formatar como é pedido!! Mas a solução é essa!!

Criado 28 de novembro de 2012
Ultima resposta 29 de nov. de 2012
Respostas 14
Participantes 4