Ae pessoal sou novo ai no fórum e estou começando com o java também. Um grande abraço a todos!!
Eu tava pesquisando alguma coisa sobre criptografia, consegui fazer alguma coisa com MD5, mas o MD5 não dezincripta. Eu precisava de algo que incriptace e dezincriptace, passando por parâmetro uma string, alguém tem alguma coisa do tipo ai??
Tenho que importar algo no meu projeto, fazer uma classe pra isso??
Mas pelo que eu vi do codigo é isso mesmo que estou precisando, ta perfeito só não to conseguindo roda por causa deste erro.
L
ludmann
Alguma idéia??
xandevieira
cara faça uma classe “ObterValorASCII” com recendo uma String e devolvendo o codigo ASCII correspondente.
procure na net uma tabela.
pablofaria
Existe realmente a necessidade de decriptografar sua string?
O que costumo fazer aqui é comparar as criptrografias e não decriptografar. Creio eu que dá mais segurança!
S
sapoboy
Gostaria de saber tbm como funciona este processo de retornar o codigo ascII,alguem poderia explicar?
obrigado.
L
ludmann
pablofaria:
Existe realmente a necessidade de decriptografar sua string?
O que costumo fazer aqui é comparar as criptrografias e não decriptografar. Creio eu que dá mais segurança!
É uma boa também cara, mas eu preciso sim decriptografar.
Kamikaze
Criptografia
publicclassCriptografarSenha{privateStringsenha;publicCriptografarSenha(){}publicCriptografarSenha(Stringsenha){this.criptografaSenha(senha);}/** * Método que retorna a senha criptografada * @return String this.senha.toString() */publicStringgetSenhaCriptografada(){returnthis.senha.toString();}/** * Método que criptografa a senha * @param senha * @return String senhaResult */publicStringcriptografaSenha(Stringsenha){StringsenhaResult;StringarrumaResult=newString("");StringBuffersenhaAsciiAux;StringBuffervalorAscii;ShortsenhaShort;ShortshortAux;shortsomaSenha=0;senhaAsciiAux=newStringBuffer("000000000000000000");valorAscii=newStringBuffer("000000000000000000");ObterValorASCIIobtemValorAscii=newObterValorASCII();intind2=1;for(intind1=0;ind1<senha.length();ind1++){senhaAsciiAux.replace(ind2-1,ind2+1,obtemValorAscii.getValorAscii(senha.substring(ind1)));ind2=ind2+3;}senhaAsciiAux.setLength(18);// Truncando p/ os 18 caracteres da criptografia for(intind1=0;ind1<16;ind1+=3){senhaShort=newShort(senhaAsciiAux.substring(ind1,ind1+3).toString());somaSenha=(short)(senhaShort.shortValue());shortAux=newShort(somaSenha);arrumaResult=Short.toString(shortAux.shortValue());if((arrumaResult!=null)&&(arrumaResult.length()==2)){arrumaResult="0"+arrumaResult;}valorAscii.replace(ind1,ind1+2,arrumaResult);}valorAscii.setLength(18);//Truncando p/ os 24 caracteres da criptografia do Logix senhaResult=(String)valorAscii.toString();this.senha=senhaResult;// Obtendo senha criptografada returnsenhaResult;}}
Decriptografa
publicclassDecriptoGrafarSenha{privateStringsenha;/** * Método que retorna a senha decriptografada * @return String this.senha.toString() */publicStringgetSenhaDecriptografada(){returnthis.senha.toString();}publicDecriptoGrafarSenha(){}publicDecriptoGrafarSenha(StringsenhaCripto){this.decriptografarSenha(senhaCripto);}/** * Método que descriptografa a senha criptografada passada por parâmetro * @param senhaCripto * @return String senhaResult * @throws java.lang.NumberFormatException */publicStringdecriptografarSenha(StringsenhaCripto)throwsjava.lang.NumberFormatException{StringsenhaResult;StringarrumaResult=newString("");StringBuffersenhaAsciiAux;StringBuffersenhaResultAux;StringBuffervalorAscii;ShortshortAux;ShortsenhaCriptoShort;shortdiminuiSenha=0;senhaAsciiAux=newStringBuffer("000000000000000000");senhaResultAux=newStringBuffer("000000000000000000");valorAscii=newStringBuffer(senhaCripto);for(intind1=0;ind1<16;ind1+=3){senhaCriptoShort=newShort(valorAscii.substring(ind1,ind1+3).toString());diminuiSenha=(short)(senhaCriptoShort.shortValue());shortAux=newShort(diminuiSenha);arrumaResult=Short.toString(shortAux.shortValue());if((arrumaResult!=null)&&(arrumaResult.length()==2)){arrumaResult="0"+arrumaResult;}senhaResultAux.replace(ind1,ind1+2,arrumaResult);}senhaResultAux.setLength(18);//Truncando p/ os 18 caracteres da criptografia senhaResult="";try{for(intind1=0;ind1<16;ind1+=3){Stringaux=String.valueOf((char)newShort(senhaResultAux.substring(ind1,ind1+3).toString()).intValue());if((Character.isLetterOrDigit(aux.charAt(0)))){senhaResult+=aux;}}}catch(Exceptionex){return"000000000";}returnthis.senha=senhaResult;}}
Teste
publicclassTesteClasseCriptoGrafiaDescriptografia{/** * Método main da classe * @param args */publicstaticvoidmain(String[]args){Stringpass="uHjWdg";CriptografarSenhacripto=newCriptografarSenha(pass);//DecriptoGrafarSenha decripto = new DecriptoGrafarSenha();System.out.println("Testes de senha");System.out.println("Senha Plana: "+pass);System.out.println("Senha Banco: "+cripto.getSenhaCriptografada());System.out.println("#####################################");System.out.println("");System.out.println("FIM");}}
espero ter ajudado
Kamikaze
Segue :D
publicclassObterValorASCII{privateStringvalorASCII;publicObterValorASCII(){}publicObterValorASCII(StringcaracterString){this.getValorAscii(caracterString);}/** * Método que retorna o valor de uma string em ascii * @param caracterString * @return String resultCharacter */publicStringgetValorAscii(StringcaracterString){Charactercaracter;Charactercaracter2;Charactercaracter3;Charactercaracter4;StringcaracterAux;StringresultCharacter;StringBuffervalorAscii;intcompara=0;shortposIni=0;shortposFim=0;shortcomparador=0;bytevalorAsciiAux;posIni=(short)32;posFim=(short)126;caracter=newCharacter(caracterString.charAt(0));caracter2=newCharacter('0');caracter3=newCharacter('A');caracter4=newCharacter('a');valorAscii=newStringBuffer();compara=caracter.compareTo(caracter2);// Retorna 0 (zero) se for igual numericamente // Retorna um numero menor que zero se for menor numericamente // Retorna um numero maior que zero se for maior numericamente if(compara==0||compara>0){posIni=(short)48;compara=caracter.compareTo(caracter3);if(compara==0||compara>0){posIni=(short)65;compara=caracter.compareTo(caracter4);if(compara==0||compara>0){posIni=(short)97;}else{posFim=(short)90;}}else{posFim=(short)90;}}else{posFim=(short)47;}for(inti=posIni;i<=posFim;i++){caracterAux=caracter.toString();valorAsciiAux=(byte)caracterAux.charAt(0);comparador=valorAsciiAux;if(comparador==i){if(comparador<100){valorAscii.append("0").append(i);// apenas para fazer igual ao 4GL USING &&& }else{valorAscii.append(i);}}}resultCharacter=newString(valorAscii);returnresultCharacter;}/** * Método que retorna o valor ascii * @return String this.valorASCII.toString() */publicStringgetValorASCII(){returnthis.valorASCII.toString();}}