MD5 Encryption


    Resumo/Informações
    • Quando lidando com armazenamento de dados sigilosos ou transação de informações sigilosas entre uma página e outra, é interessante utilizarmos algum tipo de criptografia para que os dados não fiquem legíveis.
    • No PHP temos 3 tipos de criptografias:
      MD5: de mão única, gera uma criptografia de 32 caracteres (difícil mas pode acontecer uma criptografia igual).
      SHA1: de mão única, gera uma criptografia de 40 caracteres (quase impossível de acontecer uma criptografia igual).
      BASE64: de mão dupla.

      Todas elas geram um Hash, ou seja, uma cadeia de caracteres alfanuméricos baseados em um texto.
      Elas podem ser:
      a) De mão única: efetua a criptografia de uma informação convertendo uma cadeia de 32 caracteres para um HASH de tamanho fixo, apartir dessa criptografia não é possível recuperar a criptografia original. Isso é útil para o armazenamento de senhas, pois não conseguimos recuperar a informação original, mas com base na informação criptografada, conseguimos recuperar a informação passada pelo usuário, e com isso efetuar uma comparação com entre os dados criptografados.
      Portanto, você pode utilizar o dado armazenado no banco criptografado para comparar com a senha inserida com o usuário, mas você não pode voltar a criptografia para como era antes.
      b) De mão dupla: permite a descriptografia, onde pode-se criptografar um dado, transacionar um dado e depois descriptografalo.
    Criptografia MD5
    • Ela é realizada no momento em que usuário inscreve-se no site, onde então sua senha já será salva no banco criptografada.
    • Step 23: No registra_usuario.php, utilizamos a função nativa do PHP $senha = md5($_POST['senha']), para que assim que a variável $senha receber a informação da senha, já esteja criptografada. A partir disso, armazenaremos a senha criptografada.
    • Step 24: No validar_acesso, precisamos criptografar a senha digitada pelo usuário para podermos comprar com o hash, se não ele irá comparar a string '1234' com '#13!@41#!33'.
    • Caso tenha algum usuário no banco de dados com informação não criptografada, pode-se realizar a criptografia direto através do mysql, copiando a senha do usuário (1234), indo até o SQL e colocando select md5('1234'), será informada a criptografia para essa senha, com isso é só copiar e atualizar na tabela.