Algoritmo de Criptografia

6 respostas
robinsonbsilva

Senhores, eu possuo a seguinte classe de Criptografia, e na realidade essa foi criada com base em um tutorial que possuia esse exemplo(Ctrl + C). Eu gostaria de fazer a operação inversa, ou seja, DesCriptografar.

Alguém sabe como posso proceder

import java.security.NoSuchAlgorithmException;

public final class Criptografia {

	public String criptografar(String text) throws NoSuchAlgorithmException {

		try {

			StringBuffer hexString = new StringBuffer();
			java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
			md.update(text.getBytes());

			byte[] hash = md.digest();
			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]));
			}

			text = hexString.toString();

		} catch (Exception e) {
			throw new NoSuchAlgorithmException("Erro ao realizar a criptografia.");
		}

		return text;

	}
}

6 Respostas

T

MD5 não é um método de criptografia e não tem inversa.
Ele é mais ou menos como se fosse o “noves fora” que se usa para conferir se você fez contas corretamente.
Só que o resultado, em vez de ser um número de 0 a 8, é um número bastante grande (que vai de 0 até 2 elevado a 128 menos 1); mas é mais ou menos a mesma coisa.

orlandocn

o MD5 (e outros algoritmos de hash) é unidirecional, não da pra decriptografar

abelgomes

como o Thingol disse, é um “noves fora”…se vc quer comparar tem que criptografar e comparar as 2 criptografadas :wink:

O

so complementando, somente funções criptograficas simetricas podem criptografar e decriptografar… exemplo: des, aes

luis.txt

Se vc realmente precisa de um algoritmo que se decriptografe, dê uma olhada na classe de Base64 do link a seguir:

http://weekpedia.blogspot.com/2008/09/criptografia-com-sha-1-ou-base64.html

T

Base-64 não criptografa porcaria nenhuma, principalmente porque ela não tem chave secreta ou privada. Ela é só uma forma de codificar dados binários de forma que você não precise usar bytes não-imprimíveis.

E o código que está no blog é derivado de uma classe que postei aqui (que efetivamente faz criptografia, mas com o algoritmo DES e usando o algoritmo PBE para derivar uma chave a partir de uma senha), só que o autor do blog achou que a criptografia é o Base-64 (entendeu tudo errado).

Criado 7 de janeiro de 2009
Ultima resposta 8 de jan. de 2009
Respostas 6
Participantes 6