Foi-se o tempo em que simplesmente criptografar uma string com MD5 já era sinônimo de segurança. Hoje em dia, apesar do algoritmo MD5 ser one-way (apenas criptografia e retorno impossível), há websites (como Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...) que guardam várias strings e suas hashes, para que possam ser comparadas na hora de "descriptografar".
Veja, por exemplo, a senha '123456':
e10adc3949ba59abbe56e057f20f883e
Agora, que tal fazermos o seguinte:
Crie uma senha. No meu caso, vou usar 'ownzless'. Agora, olha o que vamos fazer com a senha:
ownzless123456ownzless
Finalizando assim:
4da477f7653b542ddea423867d87b11d
Já parar por aqui é um grande passo, mas queremos mais . Vamos cortar a string pela metade:
4da477f7653b542d
Esta aí! Quer tentar descriptografar? A senha é extremamente simples (123456), mas o resultado final faz muito defacer desistir do site.
Para facilitar, vamos criar uma função em PHP que faça todo o trabalho por nós:
Vamos chamar nossa função da seguinte maneira:
Isso com certeza evita muita dor de cabeça, não é mesmo?
Até a próxima!
Obs.: Por que MD5 é one-way?
Eu lhe entrego o valor 10, resultado de algum cálculo de adição meu. Sua missão é descobrir que cálculo foi esse.
Aí está: pode ter sido 5+5, 6+4, 7+3 etc. Enfim, você não terá como saber qual foi o cálculo. O mesmo ocorre com a criptografia MD5, que gera sempre 32 caracteres (como entidades hexadecimais possuem 2 caracteres, dizemos que MD5 é uma criptografia de 128 bits).
É uma dica simples e rápida: Partir do MD5 e criar uma misturinha básica para dificultar o deface, por exemplo.Eu lhe entrego o valor 10, resultado de algum cálculo de adição meu. Sua missão é descobrir que cálculo foi esse.
Aí está: pode ter sido 5+5, 6+4, 7+3 etc. Enfim, você não terá como saber qual foi o cálculo. O mesmo ocorre com a criptografia MD5, que gera sempre 32 caracteres (como entidades hexadecimais possuem 2 caracteres, dizemos que MD5 é uma criptografia de 128 bits).
Veja, por exemplo, a senha '123456':
e10adc3949ba59abbe56e057f20f883e
Agora, que tal fazermos o seguinte:
Crie uma senha. No meu caso, vou usar 'ownzless'. Agora, olha o que vamos fazer com a senha:
ownzless123456ownzless
Finalizando assim:
4da477f7653b542ddea423867d87b11d
Já parar por aqui é um grande passo, mas queremos mais . Vamos cortar a string pela metade:
4da477f7653b542d
Esta aí! Quer tentar descriptografar? A senha é extremamente simples (123456), mas o resultado final faz muito defacer desistir do site.
Para facilitar, vamos criar uma função em PHP que faça todo o trabalho por nós:
Código PHP:
<?php
function md5_gh($string, $senha) {
$string = $senha.$string.$senha; // colocamos a senha ao redor
$string = md5($string); // criptografamos tudo
$string = substr($string, 0, 16); // pegamos apenas os 16 primeiros caracteres
return $string; // simples, não?
}
?>
Código PHP:
$foo = md5_gh("aqui entra a string que será criptografada", "sua senha");
// exemplo:
$senha = md5_gh($_POST['senha'], 'ownzless');
Até a próxima!
Comment