Criptografia / Descriptografia

Olá pessoal, gostaria de uma ajudinha de vcs…

Gostaria de criar um metodo de criptografia em que eu possa descriptografar…

Hoje uso MD5, mais tenho a necessidade de descriptografar esses dados… então gostaria de um novo metodo de criptografia e logo um para descriptografar…

Obrigado desde já…

Primeiro vamos esclarecer algumas coisas.

a) Existe criptografia simétrica, que é quando a chave usada para codificar é a mesma para descodificar. Acho que é essa que você precisa, leia material sobre aqui: http://media.techtarget.com/digitalguide/images/Misc/Ch2Excerpt.pdf

b) Existe criptografia assimétrica, que é quando você tem um par de chaves, uma publica outra privada, e o que uma criptografa, só a outra descriptografa.

c) Existem algoritmos de hashing. É o que você está usando. Eles simplesmente processam um determinado conjunto de bytes, e geram um outro conjunto que será muito difícil de se obter usando outros bytes.

Somente os itens a e b se tratam de criptografia. Hashing não é reversível. Ele é usado para verificar se uma determinada informação foi ou não alterada. Você envia informação criptograda, em conjunto com o hash. A pessoa então descriptografa o conteúdo e testar se o hash da informação bate com o enviado. Se não bater, indica que em algum momento aquele pacote de dados foi alterado.

Vini,

Muito bem explicado, só apontando essas duas coisinhas

Será impossível obter o dado original, criptografia com Hash é totalmente irreversivel, como você cita no trecho abaixo.

Na verdade a pessoa não descriptografa o contéudo… na verdade ela vai criptografar e comparar o hash que ela gerou com o hash que foi enviado.

abraço.

Hash não faz criptografia. Pq criptografia envolve esconder informação. Se ele é irreversível, então não há informação escondida.

O que eu quis dizer é que hash gera um conjunto de bytes, que será praticamente unico para uma massa de dados qualquer. E que, qualquer variação nessa massa, gerará um hash completamente diferente. Por isso, digo que é praticamente impossível duas massas de dados diferentes gerarem o mesmo hash.

Ele é mais similar à um dígito verificador, mas um dígito pra lá de seguro.

No texto ali, eu não estava falando em reverter o hash.

Não disse que a pessoa descriptografa o hash. O hash é mesmo irreversível.

O que determina sobre o que o hash é gerado é o protocolo criptográfico. Eu citei um comum, que é o sender gerar o hash sobre o texto plano, antes de criptografa-lo. O texto plano é então criptografado com algum algoritmo (simétrico ou assimétrico), e o hash anexado ao pacote.

O pacote fica composto de:
mensagem cifrada + hash da mensagem plana

O processo que citei é na recepção do dado:
Do outro lado, o cliente deve descriptografar a mensagem e, de posse do texto plano, gerar novamente o hash e comparar se é igual aquele enviado no pacote de dados.

Outros protocolos podem gerar hash em outras etapas do processo (como sobre o pacote criptografado), ou até em múltiplas etapas.