Criptografar/Descriptografar....
Ola
estou precisando criptografar e descriptografar dados........ alguem tem alguma coisa ae, p/ me ajudar???
desde já agradeço!
um abraço!!!
Bruno Ambrózio
Curtidas 0
Respostas
Lucas Teixeira
09/04/2009
public static String encrypt(String user, String password) {
String sign = user + password;
try {
java.security.MessageDigest md =
java.security.MessageDigest.getInstance("MD5");
md.update(sign.getBytes());
byte[] hash = md.digest();
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < hash.length; i++) {
if ((0xff & hash[i]) < 0x10)
hexString.append(
"0" + Integer.toHexString((0xFF & hash[i])));
else
hexString.append(Integer.toHexString(0xFF & hash[i]));
}
sign = hexString.toString();
}
catch (Exception nsae) {
nsae.printStackTrace();
}
return sign;
}GOSTEI 0
Carlos Barbosa
09/04/2009
Tenho essa locura aqui.... show de Bola...
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class CriptografiaLogix {
private String usuario;
private String senha;
public CriptografiaLogix() {
}
public CriptografiaLogix(String usuario, String senha) {
this.criptografaLogin(usuario, senha);
}
public String criptografaLogin(String codUsuario, String senha) {
String senhaResult;
String arrumaResult = new String("");
StringBuffer codUsuarioAsciiAux;
StringBuffer senhaAsciiAux;
StringBuffer senhaResultAux;
StringBuffer valorAscii;
StringBuffer shortBuffer;
Short codUsuarioShort;
Short senhaShort;
Short shortAux;
short somaSenha = 0;
codUsuarioAsciiAux = new StringBuffer("000000000000000000000000");
senhaAsciiAux = new StringBuffer("000000000000000000000000");
valorAscii = new StringBuffer("000000000000000000000000");
int ind2 = 1;
for (int ind1 = codUsuario.length(); ind1 >= 1; ind1--) {
codUsuarioAsciiAux.replace(
ind2 - 1,
ind2 + 1,
obtemValorAscii(codUsuario.substring(ind1 - 1)));
ind2 = ind2 + 3;
}
codUsuarioAsciiAux.setLength(24);
// Truncando p/ os 24 caracteres da criptografia
this.usuario = (String) codUsuarioAsciiAux.toString();
// Obtendo usuario criptografado
ind2 = 1;
for (int ind1 = 0; ind1 < senha.length(); ind1++) {
senhaAsciiAux.replace(
ind2 - 1,
ind2 + 1,
obtemValorAscii(senha.substring(ind1)));
ind2 = ind2 + 3;
}
senhaAsciiAux.setLength(24);
// Truncando p/ os 24 caracteres da criptografia
for (int ind1 = 0; ind1 < 22; ind1 += 3) {
codUsuarioShort =
new Short(
codUsuarioAsciiAux.substring(ind1, ind1 + 3).toString());
senhaShort =
new Short(senhaAsciiAux.substring(ind1, ind1 + 3).toString());
somaSenha =
(short) (codUsuarioShort.shortValue()
+ senhaShort.shortValue());
shortAux = new Short(somaSenha);
arrumaResult = Short.toString(shortAux.shortValue());
if ((arrumaResult != null) && (arrumaResult.length() == 2)) {
arrumaResult = "0" + arrumaResult;
}
valorAscii.replace(ind1, ind1 + 2, arrumaResult);
// System.out.println("1 : "+ shortAux.shortValue());//teste2
// System.out.println("2 : " + valorAscii.toString()); //teste3
}
valorAscii.setLength(24);
//Truncando p/ os 24 caracteres da criptografia do Logix
senhaResult = (String) valorAscii.toString();
this.senha = senhaResult;
// Obtendo senha criptografada
return senhaResult;
}
public String decriptografarSenha(String usuario, String senhaCripto) throws java.lang.NumberFormatException {
String senhaResult;
String arrumaResult = new String("");
StringBuffer codUsuarioAsciiAux;
String usuarioAscii;
StringBuffer senhaAsciiAux;
StringBuffer senhaResultAux;
StringBuffer valorAscii;
Short codUsuarioShort;
Short shortAux;
Short senhaCriptoShort;
short diminuiSenha = 0;
codUsuarioAsciiAux = new StringBuffer("000000000000000000000000");
senhaAsciiAux = new StringBuffer("000000000000000000000000");
senhaResultAux = new StringBuffer("000000000000000000000000");
valorAscii = new StringBuffer(senhaCripto);
int ind2 = 1;
for (int ind1 = usuario.length(); ind1 >= 1; ind1--) {
codUsuarioAsciiAux.replace(
ind2 - 1,
ind2 + 1,
obtemValorAscii(usuario.substring(ind1 - 1)));
ind2 = ind2 + 3;
}
codUsuarioAsciiAux.setLength(24);
// Truncando p/ os 24 caracteres da criptografia
usuarioAscii = (String) codUsuarioAsciiAux.toString();
// Obtendo usuario criptografado
for (int ind1 = 0; ind1 < 22; ind1 += 3) {
codUsuarioShort = new Short(codUsuarioAsciiAux.substring(ind1, ind1 + 3).toString());
senhaCriptoShort = new Short(valorAscii.substring(ind1,ind1+3).toString());
diminuiSenha = (short) (senhaCriptoShort.shortValue() - codUsuarioShort.shortValue());
shortAux = new Short(diminuiSenha);
arrumaResult = Short.toString(shortAux.shortValue());
if ((arrumaResult != null) && (arrumaResult.length() == 2)) {
arrumaResult = "0" + arrumaResult;
}
senhaResultAux.replace(ind1, ind1 + 2, arrumaResult);
// System.out.println("1 : "+ shortAux.shortValue());//teste2
// System.out.println("2 : " + valorAscii.toString()); //teste3
}
senhaResultAux.setLength(24);
//Truncando p/ os 24 caracteres da criptografia
senhaResult="";
try {
for(int ind1=0;ind1<22;ind1 +=3){
String aux = String.valueOf((char) new Short(senhaResultAux.substring(ind1, ind1 + 3).toString()).intValue());
if((Character.isLetterOrDigit(aux.charAt(0)))){
senhaResult += aux;
}
}
} catch(Exception ex) {
return "000000000";
}
return senhaResult;
}
public String obtemValorAscii(String caracterString) {
Character caracter;
Character caracter2;
Character caracter3;
Character caracter4;
String caracterAux;
String resultCharacter;
StringBuffer valorAscii;
int compara = 0;
short posIni = 0;
short posFim = 0;
short comparador = 0;
byte valorAsciiAux;
posIni = (short) 32;
posFim = (short) 126;
caracter = new Character(caracterString.charAt(0));
caracter2 = new Character('0');
caracter3 = new Character('A');
caracter4 = new Character('a');
valorAscii = new StringBuffer();
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 (int i = 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 = new String(valorAscii);
return resultCharacter;
}
public String descriptografaUsuario(String usuarioCriptografado) {
Byte byteAux = null;
StringBuffer retornoAux = null;
String stringAux;
String retorno = "";
char[] charAux = new char[1];
retornoAux = new StringBuffer();
for (int i = 0; i < usuarioCriptografado.length(); i = i + 3) {
stringAux = usuarioCriptografado.substring(i, i + 3);
byteAux = new Byte(stringAux);
charAux[0] = (char) byteAux.byteValue();
stringAux = new String(charAux);
retornoAux.append(stringAux);
}
retornoAux.reverse();
retorno = new String(retornoAux.toString());
return retorno;
}
public String getUsuarioCriptografado() {
return this.usuario.toString();
}
public String getSenhaCriptografada() {
return this.senha.toString();
}
public static String criptografaSenha(String senha) {
MessageDigest md = null;
String password = new String(senha);
try {
md = MessageDigest.getInstance("SHA-1");
} catch (NoSuchAlgorithmException _exNSAE) {
System.out.println(
"Algoritmo de criptografia n�o encontrado. \n Execu��o abortada.");
System.exit(0);
}
md.reset();
md.update(password.getBytes());
byte[] digest1 = md.digest();
StringBuffer encryptedPassword = new StringBuffer();
for (int i = 0; i < digest1.length; i++) {
encryptedPassword.append(Integer.toHexString(0xFF & digest1[i]));
}
return encryptedPassword.toString();
}
static void escreve(String str) {
System.out.println(str);
}
public static void main(String[] args) {
String user = "Laranjinha";
String pass = "uHjWdg5";
CriptografiaLogix cripto = new CriptografiaLogix(user, pass);
escreve("Testes de senha");
escreve("Usuario : " + user);
escreve("Senha Plana: " + pass);
escreve("Senha Banco: " + cripto.getSenhaCriptografada());
escreve("Senha : " + cripto.decriptografarSenha(user,cripto.getSenhaCriptografada()));
escreve("Usuário : " + cripto.descriptografaUsuario(cripto.getUsuarioCriptografado()));
escreve("#####################################");
escreve("");
escreve("FIM");
}
}
GOSTEI 0
Carlos Barretto
09/04/2009
nossa, esse deve ser usado pela NASA!
:hauhau: :hauhau: :hauhau: :hauhau: :hauhau: :hauhau: :hauhau: :hauhau: :hauhau: :hauhau:
GOSTEI 0
Bruno Ambrózio
09/04/2009
hehehehhe
locura, loucura, louccura!!! ehehheh
entao Lucas, só vou precisar criptografar a senha... acho q com esse dá certo!!!! vou tentar aqui!!!!
valeu Lucas e Small Orange !!!hhehehe
falowww
GOSTEI 0
Bruno Ambrózio
09/04/2009
Ei Lucas...
vc nao teria a descriptografia??????????????
GOSTEI 0
Lucas Teixeira
09/04/2009
[quote="brunoambrozio"]Ei Lucas...
vc nao teria a descriptografia??????????????
Bruno.... é o seguinte cara...
hoje em dia não se descriptografa mais nada pela insegurança desta senha trafegar.... entao o que se faz?
quando o usuario se cadastra... é gerado este codigo e armazenado no banco....
ai quando ele vai logar, vc gera novamente este codigo com o usuario e senha que ele tentou logar, e ai voce compara com o do banco (ou o que vc guardou anteriormente).... se conferir... BINGO!, se não.... ai voce nega o acesso... entendeu ??
:!: :!: :!:
GOSTEI 0
Bruno Ambrózio
09/04/2009
Isso sim...
Mas o que eu estava precisando era fazer a inversão tb......... ai eu peguei o codigo do laranjinha e deu certo!!!!
mais uma vez, valeu!!!!
:!: :!:
GOSTEI 0
Lucas Teixeira
09/04/2009
[quote="brunoambrozio"]Isso sim...
Mas o que eu estava precisando era fazer a inversão tb......... ai eu peguei o codigo do laranjinha e deu certo!!!!
mais uma vez, valeu!!!!
:!: :!:
Beleza cara...
mas lembre-se.... é altamente não-recomendado fazer o uso da descriptografia....
Bom.... mas dependendo da sua aplicação.... e falando nisso... fiquei curioso para saber o que vc está implementando que necessita de criptografia....
:oops: :oops: :oops:
GOSTEI 0
Bruno Ambrózio
09/04/2009
Então... eu trabalho em uma empresa que faz sistemas publicos.. e eu e o carlosbarretto estamos refazendo a pagina e criando um sistema de atualizacao, cadastro.. etc.... até ai td bem... o nosso chefe, pediu p/ que nós dispusessemos as senhas de liberação dos softwares p/ os clientes pela net... entao resolvemos fazer isso, para que o provedor que hospeda a nossa pagina nao tenha acesso a essas senhas.....
e é isso ae!!! :idea: :idea:
GOSTEI 0
Lucas Teixeira
09/04/2009
[quote="brunoambrozio"]Então... eu trabalho em uma empresa que faz sistemas publicos.. e eu e o carlosbarretto estamos refazendo a pagina e criando um sistema de atualizacao, cadastro.. etc.... até ai td bem... o nosso chefe, pediu p/ que nós dispusessemos as senhas de liberação dos softwares p/ os clientes pela net... entao resolvemos fazer isso, para que o provedor que hospeda a nossa pagina nao tenha acesso a essas senhas.....
e é isso ae!!! :idea: :idea:
e para que voce precisa da descriptografia?
GOSTEI 0
Carlos Barretto
09/04/2009
[quote="brunoambrozio"]Então... eu trabalho em uma empresa que faz sistemas publicos.. e eu e o carlosbarretto estamos refazendo a pagina e criando um sistema de atualizacao, cadastro.. etc.... até ai td bem... o nosso chefe, pediu p/ que nós dispusessemos as senhas de liberação dos softwares p/ os clientes pela net... entao resolvemos fazer isso, para que o provedor que hospeda a nossa pagina nao tenha acesso a essas senhas.....
e é isso ae!!! :idea: :idea:
só complementando, ao cliente se logar ele automaticamente saberá a senha do sistema gerada por uma classe Java, ou seja, a senha dos sistemas nunca ficara na internet ... mas com as senhas de usuario pode-se descobrir a senha dos sistemas, e é aí que entra a criptografia "para a senha do cliente!! " :!:
GOSTEI 0
Ivo Guedes
09/04/2009
Estou querendo salvar as senhas criptografadas e ler elas novamente para efetuar um controle ao trocar a senha, e não estou conseguindo fazer isso criptografando, sem criptografa ta funcionando quando fui implementar a cripto não sai do lugar
segue o código abaixo
se precisar mando o resto(entradas via frame)
package safeHistorical;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.RandomAccess;
public class GerenciadorUsuarios {
public void validarSenha(String usuario, String senha, String novaSenha, String confirmarNovaSenha){
try {
String arquivo = usuario+"senha.txt";
ArrayList<String> senhas = new ArrayList<String>();
BufferedReader in = new BufferedReader(new FileReader(arquivo));
while (in.ready()){
senhas.add(in.readLine());
}
in.close();
if (senhas.contains(novaSenha)){
JOptionPane.showMessageDialog(null, "Senha já cadastrada");
return;
}
String ultimaSenha = senhas.get(senhas.size()-1);
if (senha.equals(ultimaSenha) && (novaSenha.equals(confirmarNovaSenha ))){
senhas.add(novaSenha);
this.cadastrarSenha(senhas, usuario);//QUERO FAZER AO INVES DE ENTRAR EM CADASTRAR SENHA DE ENTRAR NO MÉTODO CRIPTOGRAFAR SENHA
//E DEPOIS DO ENTRAR EM CRIPTOGRAFAR AI SIM ENTRAR NO CADASTRAR SENHA.............
//TEM COMO?? E DEPOIS ELE VAI SABER LER A SENHA?
return;
}
else if (senha.equals(ultimaSenha) && (!novaSenha.equals(confirmarNovaSenha ))){
JOptionPane.showMessageDialog(null, "A confirmação da senha é diferente da senha informada!");
return;
}
else {
JOptionPane.showMessageDialog(null, "Senha atual não confere!");
return;
}
}
catch (IOException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
// private void criptografaSenha(String novaSenha){
// try {
// MessageDigest algorithm = MessageDigest.getInstance("SHA-256");
// byte messageDigest[] = algorithm.digest(novaSenha.getBytes("UTF-8"));
//
// StringBuilder hexString = new StringBuilder();
// for (byte b : messageDigest) {
// hexString.append(String.format("%02X", 0xFF & b));
// }
// novaSenha = hexString.toString();
//
//
// }
//
// catch (Exception e) {
//
// }
// }
private void cadastrarSenha(ArrayList<String> senhas, String usuario) {
try{
String arquivo = usuario+"senha.txt";
BufferedWriter x = new BufferedWriter(new FileWriter(arquivo));
for(int i = 0; i < senhas.size(); i++) {
String Grav = senhas.get(i)+"\r\n";
x.write(Grav);
}
x.close();
JOptionPane.showMessageDialog(null, "Arquivo gravado com sucesso");
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e.getMessage(),"Atenção",JOptionPane.WARNING_MESSAGE);
}
}
}
GOSTEI 0
Ivo Guedes
09/04/2009
Existe uma técnica chamada [url=http://pt.wikipedia.org/wiki/ROT13]ROT-13[/url]
é bem interessante.
Provavelmente não vai te servir mas....
Só postei pra mostrar que ela existe :P
GOSTEI 0
Jonatas Carlos
09/04/2009
Sei que o topico ja ta off e ja foi resolvido
mas tipo tenta fazer varias mesclagens de array hexa gerados, dai voce mescla denovo com outro hexa mas limita o tamanho da password pra 8 caracteres é bem seguro...
Eu tive essa ideia se quiser passo o codigo pra voce...
são poucas linhas se comparado a segurança do sistema...
gera bilhoes de senhas e escolhe uma...
se pedir eu passo
Ah e isso aí do ROT-13 que o sekkuar falou... não é muito eficiente...
ou seja alguém que saiba ROT-13 pode decriptar o sistema... Mesmo que voce mescle ROT-13 e md5... existem vaios decriptadores de md5 na net e códigos eficientes pra isso, e o ROT-13 é relativamente facil de descobrir...
Abraço...
GOSTEI 0
Douglas Eric
09/04/2009
[quote="Nahalem"] não é muito eficiente...
ou seja alguém que saiba ROT-13 pode decriptar o sistema...
[img]http://trollcats.com/wp-content/uploads/2009/10/thank_you_captain_obvious_trollcat.jpg[/img]
GOSTEI 0
Jonatas Carlos
09/04/2009
Sekkuar... Sem essas brincadeiras por favor...
(apesar de ter sido um pouquinho engraçado)
GOSTEI 0
Wellington
09/04/2009
[quote="Laranjinha"]Tenho essa locura aqui.... show de Bola...
kara o meu ta cortando as duas primeiras letras do usuário.. o que fiz errado?
Testes de senha
Usuario : wellington
Senha Plana: abcdef
Senha Banco: 207209215203211207108108
Senha : abcdef
Usuário : llington
#####################################
FIM
[b]
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class CriptografiaLogix {
private String usuario;
private String senha;
public CriptografiaLogix() {
}
public CriptografiaLogix(String usuario, String senha) {
this.criptografaLogin(usuario, senha);
}
public String criptografaLogin(String codUsuario, String senha) {
String senhaResult;
String arrumaResult = new String("");
StringBuffer codUsuarioAsciiAux;
StringBuffer senhaAsciiAux;
StringBuffer senhaResultAux;
StringBuffer valorAscii;
StringBuffer shortBuffer;
Short codUsuarioShort;
Short senhaShort;
Short shortAux;
short somaSenha = 0;
codUsuarioAsciiAux = new StringBuffer("000000000000000000000000");
senhaAsciiAux = new StringBuffer("000000000000000000000000");
valorAscii = new StringBuffer("000000000000000000000000");
int ind2 = 1;
for (int ind1 = codUsuario.length(); ind1 >= 1; ind1--) {
codUsuarioAsciiAux.replace(
ind2 - 1,
ind2 + 1,
obtemValorAscii(codUsuario.substring(ind1 - 1)));
ind2 = ind2 + 3;
}
codUsuarioAsciiAux.setLength(24);
// Truncando p/ os 24 caracteres da criptografia
this.usuario = (String) codUsuarioAsciiAux.toString();
// Obtendo usuario criptografado
ind2 = 1;
for (int ind1 = 0; ind1 < senha.length(); ind1++) {
senhaAsciiAux.replace(
ind2 - 1,
ind2 + 1,
obtemValorAscii(senha.substring(ind1)));
ind2 = ind2 + 3;
}
senhaAsciiAux.setLength(24);
// Truncando p/ os 24 caracteres da criptografia
for (int ind1 = 0; ind1 < 22; ind1 += 3) {
codUsuarioShort =
new Short(
codUsuarioAsciiAux.substring(ind1, ind1 + 3).toString());
senhaShort =
new Short(senhaAsciiAux.substring(ind1, ind1 + 3).toString());
somaSenha =
(short) (codUsuarioShort.shortValue()
+ senhaShort.shortValue());
shortAux = new Short(somaSenha);
arrumaResult = Short.toString(shortAux.shortValue());
if ((arrumaResult != null) && (arrumaResult.length() == 2)) {
arrumaResult = "0" + arrumaResult;
}
valorAscii.replace(ind1, ind1 + 2, arrumaResult);
// System.out.println("1 : "+ shortAux.shortValue());//teste2
// System.out.println("2 : " + valorAscii.toString()); //teste3
}
valorAscii.setLength(24);
//Truncando p/ os 24 caracteres da criptografia do Logix
senhaResult = (String) valorAscii.toString();
this.senha = senhaResult;
// Obtendo senha criptografada
return senhaResult;
}
public String decriptografarSenha(String usuario, String senhaCripto) throws java.lang.NumberFormatException {
String senhaResult;
String arrumaResult = new String("");
StringBuffer codUsuarioAsciiAux;
String usuarioAscii;
StringBuffer senhaAsciiAux;
StringBuffer senhaResultAux;
StringBuffer valorAscii;
Short codUsuarioShort;
Short shortAux;
Short senhaCriptoShort;
short diminuiSenha = 0;
codUsuarioAsciiAux = new StringBuffer("000000000000000000000000");
senhaAsciiAux = new StringBuffer("000000000000000000000000");
senhaResultAux = new StringBuffer("000000000000000000000000");
valorAscii = new StringBuffer(senhaCripto);
int ind2 = 1;
for (int ind1 = usuario.length(); ind1 >= 1; ind1--) {
codUsuarioAsciiAux.replace(
ind2 - 1,
ind2 + 1,
obtemValorAscii(usuario.substring(ind1 - 1)));
ind2 = ind2 + 3;
}
codUsuarioAsciiAux.setLength(24);
// Truncando p/ os 24 caracteres da criptografia
usuarioAscii = (String) codUsuarioAsciiAux.toString();
// Obtendo usuario criptografado
for (int ind1 = 0; ind1 < 22; ind1 += 3) {
codUsuarioShort = new Short(codUsuarioAsciiAux.substring(ind1, ind1 + 3).toString());
senhaCriptoShort = new Short(valorAscii.substring(ind1,ind1+3).toString());
diminuiSenha = (short) (senhaCriptoShort.shortValue() - codUsuarioShort.shortValue());
shortAux = new Short(diminuiSenha);
arrumaResult = Short.toString(shortAux.shortValue());
if ((arrumaResult != null) && (arrumaResult.length() == 2)) {
arrumaResult = "0" + arrumaResult;
}
senhaResultAux.replace(ind1, ind1 + 2, arrumaResult);
// System.out.println("1 : "+ shortAux.shortValue());//teste2
// System.out.println("2 : " + valorAscii.toString()); //teste3
}
senhaResultAux.setLength(24);
//Truncando p/ os 24 caracteres da criptografia
senhaResult="";
try {
for(int ind1=0;ind1<22;ind1 +=3){
String aux = String.valueOf((char) new Short(senhaResultAux.substring(ind1, ind1 + 3).toString()).intValue());
if((Character.isLetterOrDigit(aux.charAt(0)))){
senhaResult += aux;
}
}
} catch(Exception ex) {
return "000000000";
}
return senhaResult;
}
public String obtemValorAscii(String caracterString) {
Character caracter;
Character caracter2;
Character caracter3;
Character caracter4;
String caracterAux;
String resultCharacter;
StringBuffer valorAscii;
int compara = 0;
short posIni = 0;
short posFim = 0;
short comparador = 0;
byte valorAsciiAux;
posIni = (short) 32;
posFim = (short) 126;
caracter = new Character(caracterString.charAt(0));
caracter2 = new Character('0');
caracter3 = new Character('A');
caracter4 = new Character('a');
valorAscii = new StringBuffer();
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 (int i = 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 = new String(valorAscii);
return resultCharacter;
}
public String descriptografaUsuario(String usuarioCriptografado) {
Byte byteAux = null;
StringBuffer retornoAux = null;
String stringAux;
String retorno = "";
char[] charAux = new char[1];
retornoAux = new StringBuffer();
for (int i = 0; i < usuarioCriptografado.length(); i = i + 3) {
stringAux = usuarioCriptografado.substring(i, i + 3);
byteAux = new Byte(stringAux);
charAux[0] = (char) byteAux.byteValue();
stringAux = new String(charAux);
retornoAux.append(stringAux);
}
retornoAux.reverse();
retorno = new String(retornoAux.toString());
return retorno;
}
public String getUsuarioCriptografado() {
return this.usuario.toString();
}
public String getSenhaCriptografada() {
return this.senha.toString();
}
public static String criptografaSenha(String senha) {
MessageDigest md = null;
String password = new String(senha);
try {
md = MessageDigest.getInstance("SHA-1");
} catch (NoSuchAlgorithmException _exNSAE) {
System.out.println(
"Algoritmo de criptografia n�o encontrado. \n Execu��o abortada.");
System.exit(0);
}
md.reset();
md.update(password.getBytes());
byte[] digest1 = md.digest();
StringBuffer encryptedPassword = new StringBuffer();
for (int i = 0; i < digest1.length; i++) {
encryptedPassword.append(Integer.toHexString(0xFF & digest1[i]));
}
return encryptedPassword.toString();
}
static void escreve(String str) {
System.out.println(str);
}
public static void main(String[] args) {
String user = "Laranjinha";
String pass = "uHjWdg5";
CriptografiaLogix cripto = new CriptografiaLogix(user, pass);
escreve("Testes de senha");
escreve("Usuario : " + user);
escreve("Senha Plana: " + pass);
escreve("Senha Banco: " + cripto.getSenhaCriptografada());
escreve("Senha : " + cripto.decriptografarSenha(user,cripto.getSenhaCriptografada()));
escreve("Usuário : " + cripto.descriptografaUsuario(cripto.getUsuarioCriptografado()));
escreve("#####################################");
escreve("");
escreve("FIM");
}
}
GOSTEI 0
Douglas Eric
09/04/2009
[quote="wellingtonfoz"]
kara o meu ta cortando as duas primeiras letras do usuário.. o que fiz errado?
Meio dificil de descobrir sem ver o que você fez :)
GOSTEI 0