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…
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.
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.