fala ae gente blza
vc conseguiu alguma solucao para o problema do tamanho da chave
tenta forca ela a se repetir ateh q some com toda a string ???
[quote=“C3pO”]fala ae gente blza
vc conseguiu alguma solucao para o problema do tamanho da chave
tenta forca ela a se repetir ateh q some com toda a string ???[/quote]
BEMMM LEMBRADO GAROTOOO… vc chegou na hora certa… vamos voltar lah pra cima…
a chave ainda nao ta fazendo o looping em cima do texto… ou seja… ela só ta passando pra ASCII akilo que é do tamanho da chave…
ajuda ai pessoal… preciso de um codigo que faça isso…
Texto = abcdefg
Chave = ab
na somatoria ele tem q fazer isso
abcdefg
abababa
e ai… como faço isso?
ah… ainda preciso transformar de ASCII devolta pra caracter…
eee trequinho complicado…
tinha pensado no seguinte
-ao mesmo tempo em q o for transforma cada caracter da string em ASCII ele joga-se o caracter para uma outra estrura de repeticao (for),
este por sua vez estaria transformando cada caracter da chave em seu respectivo ASCII, dai ele somase, mas detalhe , de alguma forma ao termino da string chave, fose feito um teste(if) averiguando se o caracter da chave naquele momento era o ultimo, dai o contador do for seria zerado para q ele comessa-se aler a chave denovo do primeiro caracter, enquanto issu o primeiro for continuaria normalmente a transformar a string principal em ASCII e passar os valores para o segundo for
mas para issu presizava armazenar essa sequencia de ASCII resultantes em alguma string
a ideia tem algum sintido pra vc??? 8O 8O 8O
eu vi em outro topico q pra concatena string issu funciona, eu acho :
string += novovalor
agora num sei!!! :sad:
[quote=“ruyloko”]ajuda ai pessoal… preciso de um codigo que faça isso…
Texto = abcdefg
Chave = ab
na somatoria ele tem q fazer isso
abcdefg
abababa
e ai… como faço isso?
ah… ainda preciso transformar de ASCII devolta pra caracter…
[/quote]
pra fazer isso voce pode somar com o caracter na posicao i da String, mas modularizado ao tamanho da chave. um exemplo vai deixar mais claro:
import javax.swing.JOptionPane;
public static void main( String[] args ){
String palavra;
String chave;
String resultado = "";
palavra = JOptionPane.showInputDialog("Poe seu texto ai!");
chave = JOptionPane.showInputDialog("Insira sua chave!");
for(int i = 0; i < palavra.length(); i++) {
int charPalavra = palavra.charAt(i);
int charChave = chave.charAt(i % chave.length());
int result = charPalavra + charChave;
resultado += (char) result;
}
JOptionPane.showMessageDialog(null, resultado);
}
entao, o codigo ai em cima faz tudo o que voce pediu na citação que eu separei lah no começo…testa isso ai, e se nao pegar, ou voce nao tiver entendido alguma coisa, pergunta ae…
espero ter ajudado.
[quote=“javaAdicted”][quote=“ruyloko”]ajuda ai pessoal… preciso de um codigo que faça isso…
Texto = abcdefg
Chave = ab
na somatoria ele tem q fazer isso
abcdefg
abababa
e ai… como faço isso?
ah… ainda preciso transformar de ASCII devolta pra caracter…
[/quote]
pra fazer isso voce pode somar com o caracter na posicao i da String, mas modularizado ao tamanho da chave. um exemplo vai deixar mais claro:
import javax.swing.JOptionPane;
public static void main( String[] args ){
String palavra;
String chave;
String resultado = "";
palavra = JOptionPane.showInputDialog("Poe seu texto ai!");
chave = JOptionPane.showInputDialog("Insira sua chave!");
for(int i = 0; i < palavra.length(); i++) {
int charPalavra = palavra.charAt(i);
int charChave = chave.charAt(i % chave.length());
int result = charPalavra + charChave;
resultado += (char) result;
}
JOptionPane.showMessageDialog(null, resultado);
}
entao, o codigo ai em cima faz tudo o que voce pediu na citação que eu separei lah no começo…testa isso ai, e se nao pegar, ou voce nao tiver entendido alguma coisa, pergunta ae…
espero ter ajudado.[/quote]
cara, desculpa, mas eu nao entendi o que você fez ai… nao consegui encaixar isso no meu codigo…
[quote=“C3pO”]tinha pensado no seguinte
-ao mesmo tempo em q o for transforma cada caracter da string em ASCII ele joga-se o caracter para uma outra estrura de repeticao (for),
este por sua vez estaria transformando cada caracter da chave em seu respectivo ASCII, dai ele somase, mas detalhe , de alguma forma ao termino da string chave, fose feito um teste(if) averiguando se o caracter da chave naquele momento era o ultimo, dai o contador do for seria zerado para q ele comessa-se aler a chave denovo do primeiro caracter, enquanto issu o primeiro for continuaria normalmente a transformar a string principal em ASCII e passar os valores para o segundo for
mas para issu presizava armazenar essa sequencia de ASCII resultantes em alguma string
a ideia tem algum sintido pra vc??? 8O 8O 8O
eu vi em outro topico q pra concatena string issu funciona, eu acho :
string += novovalor
agora num sei!!! :sad:[/quote]
8O 8O 8O 8O
cara, vc quer me deixar loco??? hahahaha
calmai… vamos ler denovo… hummmm
caraaaa, q complicado… hahahaha nao sei… eu li o codigo de baixo… mas nao deu mto certo… o dele funfou mais ou menos… da alguns erros…
acho que no meu codigo só ta faltando fazer um looping da chave em cima do texto… mas nao sei qual codigo faz isso…
posta o q vc fez ateh agora
e discreve q saida vc consegue ao rodar o programa
ateh mais
[code]import javax.swing.JOptionPane;
public class main {
public static void main( String[] args ){
String box = JOptionPane.showInputDialog("Poe seu texto ai!");
int x = 0;
for(int i = 0; i < box.length(); i++ ) {
x = box.charAt(i);
//JOptionPane.showMessageDialog(null, "Letra na tabela ascii "+ x);
}
String chave = JOptionPane.showInputDialog("Insira sua chave!");
int y = 0;
for(int i = 0; i < chave.length(); i++ ){
y = chave.charAt(i);
//JOptionPane.showMessageDialog(null, "Letra na tabel denovo "+ y);
}
String resultado = “”;
int z = 0;
for(int j = 0; j < chave.length(); j++) {
z = ( x + y );
JOptionPane.showMessageDialog(null, "Resultado "+ z);
}
}
} [/code]
só consegui isso ateh agora… o q ele ta fazendo eh o seguinte…
transformando pra ASCII as duas strings (box e chave) e somando…
porem ele só soma o numero de caracters q eu coloquei na chave…
ou seja, se eu tenho 3 caracteres na box e somente 1 na chave… ele soma o primeiro…
preciso fazer a chave rodar dentro do box inteiro até acabar…
como os valores ASCII naum estao sendo armazenados em nehuma outra variavel no final dos for x e y naum estariam com o valor do ultimo caracter apenas ???
nao… ele ta me mostrando todos os valores… e to lendo a variavel antes de começar o for, entao ele grava ali!
tenta roda issu aki (num kero nem ve!!! hahah)
import javax.swing.JOptionPane;
public class main{
public static void main(String [] args){
String box=JOptionPane.showInputDialog(“Insira uma string”);
String chave=JOptionPane.showInputDialog("Insira sua chave);
int x=0;
int y=0;
int z=0;
String ascii;
for(int i =0; i<box.length(); i++){
x=box.charAt(i);
for(int j=0; j<chave.length(); j++){
y=chave.charAt(j);
z=(x+y);
ascii+= String.parseString(z);
if(j==chave.length()-1){
j=0;
}
}
}
JOptionPane.showMessageDialog(“String cifrada:”+ascii);
}
}
a essa altura do campionato qualquer tentativa eh válida
tenta roda issu e me diz no q da
sera q teremos outro loop infinito???ham?ham?
uhauhauhauh cara… fiquei ateh com medo de rodar… mas fui fundooo e nao rodou… hahaha
seguinte… nao sei da onde… acho que fruto da sua imaginação… hahaha brincadeira… mas da onde vc tira issu?
ascii+= String.parseString(z);
ele nao reconhece na verdade esse ascii …
da erro tb logo embaixo tentando mostrar ele…
me tira uma duvida feia…
o que faz dar o loop é o for certo?
e o q significa isso entao?
i = 0
i < string.length
i++
??? :roll: ???
eu li q o operador + tambem concatena strings
nesse trecho :
ascii+= String.parseString(z);
eu tentei, a cada volta do for, concatenar o conteudo da string ascii
com o valor d z (transformando o valor d inteiro de z em uma string)
mas pelo q eu vejo naum ta dando muito certo
o que faz dar o loop é o for certo?
e o q significa isso entao?
Código:
i = 0 >> aqui vc cria um contador para controlar quantas “voltas” o for vai dar
Código:
i < string.length() >>aqui vc esta dizendo q o for vai executar os comandos dentro de sua estrutura emquanto o valor inteiro i for menor q o numero de caracteris contidos na string
Código:
i++ >> nessa parte vc diz q a cada loop (volta) q o for der ele deve somar 1 ao valor do contador, vai funcionar como um freio para a estrutura
quando a condicao (i<string.length()) for falsa a estrutura para naum executando mais seus comandos internos
eh valeu a tentativa
continuemos a pensar!!! :roll:
[quote=“C3pO”]eu li q o operador + tambem concatena strings
nesse trecho :
ascii+= String.parseString(z);
eu tentei, a cada volta do for, concatenar o conteudo da string ascii
com o valor d z (transformando o valor d inteiro de z em uma string)
mas pelo q eu vejo naum ta dando muito certo
o que faz dar o loop é o for certo?
e o q significa isso entao?
Código:
i = 0 >> aqui vc cria um contador para controlar quantas “voltas” o for vai dar
Código:
i < string.length() >>aqui vc esta dizendo q o for vai executar os comandos dentro de sua estrutura emquanto o valor inteiro i for menor q o numero de caracteris contidos na string
Código:
i++ >> nessa parte vc diz q a cada loop (volta) q o for der ele deve somar 1 ao valor do contador, vai funcionar como um freio para a estrutura
quando a condicao (i<string.length()) for falsa a estrutura para naum executando mais seus comandos internos
eh valeu a tentativa
continuemos a pensar!!! :roll:[/quote]
humm… pensando aqui com meus botoes… tem algum comando de comparação? tipo… estava tentando fazer ele comparar a chave com o texto, e a partir disso ele tirar quantos loopings vai ter q fazer para chegar no fim do texto…
OI pessoal !!! Estava um pouco abafada aqui no trabalho e não pude ajudar antes !
O que vcs querem dizer com “chave” ??? O que significa isso e o que querem fazer com isso ??
:?: :?: :?: :?: :?: :?:
Vc tá querendo tipo intercalar as letras com dois(ou mais) caracteres diferentes , é isso ??
8O 8O 8O
se ainda for de seu interesse, ai vai o codigo comentado:
import javax.swing.JOptionPane;
public static void main( String[] args ){
//palavra que sera encriptada
String palavra;
//palavra chave, que sera menor que a palavra acima
String chave;
//resultado da encriptacao
String resultado = "";
//recebe a palavra a ser encriptada
palavra = JOptionPane.showInputDialog("Poe seu texto ai!");
//recebe a palavra-chave
chave = JOptionPane.showInputDialog("Insira sua chave!");
//este laço vai percorrer toda a palavra passada
for(int i = 0; i < palavra.length(); i++) {
//a representacao em ascii de um caractere da palavra
int charPalavra = palavra.charAt(i);
/*a representacao em ascii do caractere da palavra chave equivalente ao caractere acima, como essa palavra pode ser menor que a palavra principal, o indice do caractere é modularizado, para que não haja StringIndexOutOfBounds. o operador "%" retorna o resto da divisao do primeiro pelo segundo operando*/
int charChave = chave.charAt(i % chave.length());
/*a soma dos caracteres acima, acredito que é isso que voce quer, e sugiro que isso seja modularizado a 256*/
int result = charPalavra + charChave;
//o resultado acima é concateado à String resultante
resultado += (char) result;
}
//aqui é mostrada a string com a palavra criptografada
JOptionPane.showMessageDialog(null, resultado);
}
espero ter sido mais claro dessa vez…
Eu rodei o codigo que javaAdicted passou e ficou massa !!! Deu tudo certinho, a encriptação tudo !!
Fala Ruy blzinha ? E ae pessoal …
Eu sei que provavelmente vcs vão ter muita raiva de mim ao ler isso mas é minha ultima saída … ja postei em pelo menos uns 8 fóruns e ninguem respondeu … então desculpa ae …
Seguinte … so da classe do ruy tbem e tenho que fazer essa porcaria de criptografia … só q o problema é q to tentando faz 3 semanas fazer em java script e até agora a unica coisa que consegui é uma bela dor de cabeça.
Sera que alguem pode pelo amor de deus dar uma ajuda ? Achei um código pronto na net e tentei usar como modelo … só piorou a coisa … se alguem se interessar script aqui.
E ja to dando uma lida nos tutoriais que tem aqui … vi o ruy fuçando em java e curti o negocio …
Vlw galera e desculpa de novo o abuso …
[quote=“LeoFicz”]Fala Ruy blzinha ? E ae pessoal …
Eu sei que provavelmente vcs vão ter muita raiva de mim ao ler isso mas é minha ultima saída … ja postei em pelo menos uns 8 fóruns e ninguem respondeu … então desculpa ae …
Seguinte … so da classe do ruy tbem e tenho que fazer essa porcaria de criptografia … só q o problema é q to tentando faz 3 semanas fazer em java script e até agora a unica coisa que consegui é uma bela dor de cabeça.
Sera que alguem pode pelo amor de deus dar uma ajuda ? Achei um código pronto na net e tentei usar como modelo … só piorou a coisa … se alguem se interessar script aqui.
E ja to dando uma lida nos tutoriais que tem aqui … vi o ruy fuçando em java e curti o negocio …
Vlw galera e desculpa de novo o abuso …[/quote]
iihhh cara, voce se complicou…
javascript é uma linguagem pra html, e é completamente diferente de Java, que é uma linguagem de programação de alto nível…
mas é o seguinte, nem voce nem ruyloko disseram bem qual é a solução que voces precisam encontrar…entao fala ae que talvez fique mais facil ajudar…pq eu ja postei um codigo ae que faz o que ruyloko pediu e parece que nao é bem o que voces precisam…entao, to esperando ae
falow,
boa sorte
É … parece q dancei mesmo huahuahuahuhah … vou pegar umas apostilas java pra ver se consigo pelo menos entender o código que vcs forem passando aqui … entrei de bicão mesmo uahuhauhauh …
Quanto a explicação vamo la :
A gente precisa de um código que faça a criptografia de um texto, que vai ser inserido em uma caixa ( como não faço nem idéia de como pode ser feito em java vo da um exemplo, caixa de texto de formulário ) pelo usuário ( vamo chamar de caixa1 ).
Aí começa o problema real : O texto que vai ter nessa caixa1 tem que ser somado com uma chave qualquer inserida pelo usuário ( caixa2 ) isso chama cifra de vigenere e funciona assim :
Texto inserido pelo usuario => o texto da caixa1
chavechavechavechavechave => chave da caixa2
Suponhamos que o t ( texto caixa1 ) na tabela ascii é o 2 e o c ( da chave ) vale 1. O treco tem que somar o t ( 2 ) e o c ( 1 ) e mostrar a letra que corresponde ao 3 na tabela ascii. Só que o que ele mostrar não vai ser o código da letra e sim a bendita letra, e quando ele somar uma letra com uma chave e passar do codigo do z ele tem que voltar para o a.
Só isso ( uahuhauhauh 3 semanas tentando e nada ).
Ficou explicadinho javaAdicted ? Será que agora vai ?
[]´s