Senhas Criptografadas – Como Gerar E Recuperar?

A matéria que criaremos hoje é simples; porém, muito eficaz no que se refere à segurança de informações!

Eu, você, aliás. Todos os desenvolvedores, certamente ao desenvolver uma tabela de usuários, já esqueceu de criptografar suas informações, correto?

O problema não é apenas esse… Imagine se uma pessoa de má indole descobre as senhas cadastradas na sua tabela e assim tem acesso a áreas como: MSN, EMail, Orkut, etc?

Através da dica que daremos hoje, você poderá evitar este e qualquer outro problema, pois se ainda não sabe, tu aprenderá a criptografar as senhas cadastradas em sua base de dados!

criptografia

Criando A Tabela

Antes de partirmos para a programação, abra o ficheiro script-sql.txt (disponível em anexo) e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados.

Nesta matéria estamos utilizando o phpMyAdmin. Caso tu também esteja a utilizar este sistema, Selecione sua base de dados e clique em SQL, colando a seguir o conteúdo do script (conforme código abaixo).


----- CRIA A TABELA tbl_criptografia -----

DROP TABLE IF EXISTS `tbl_criptografia`;
CREATE TABLE `tbl_criptografia` (
  `id` int(11) NOT NULL auto_increment,
  `senha` varchar(50) default NULL,
  `cript` varchar(50) default NULL,
  PRIMARY KEY  (`id`)
);

Após importar os dados, você poderá dar andamento ao conteúdo.

Conexão À Base De Dados:

Para acessar a base de dados, vamos usar o script “conexao.php” (conforme código a seguir).


<?

$database = "SERVIDOR";    // nome do servidor
$dbname   = "BASEDEDADOS"; // nome da base de dados
$usuario  = "USUARIO";    // usuário MySQL
$dbsenha  = "SENHA";      // senha do usuário MySQL

$conexao=mysql_connect ($database, $usuario, $dbsenha);
if($conexao){
      if (mysql_select_db($dbname, $conexao)){
           print "";
      }else{
           print "Não foi possível selecionar o Banco de Dados";
           }
      }else{
           print "Erro ao conectar o MySQL";
           }
?>

OBS.: Configure os dados de acesso de acordo com o que funcionará em sua área de desenvolvimento. Caso haja alguma falha, o script não funcionará.

Inserindo A Senha No BD:

Agora que já criamos a base de dados e preparamos o script de conexão, vamos para uma das partes mais importantes; Vamos cadastrar a senha na base de dados!

Para este procedimento, será necessário usar o ficheiro “insere.php” (conforme código a seguir).

Até para facilitar, neste exemplo usaremos a senha “123456″.


<?

include "conexao.php"; //chama o arquivo que conecta ao MySQL

$senha = '123456';

$query = "INSERT INTO tbl_criptografia(senha,cript) VALUES('$senha',password('$senha'))";
$resultado = mysql_query($query);

if($resultado){

echo "<SCRIPT LANGUAGE='JavaScript' TYPE='text/javascript'> alert ('SENHA 123456 Criptografada com sucesso')</SCRIPT>";
echo "<SCRIPT language='JavaScript'>window.location.href='verificasenha.php';</SCRIPT>";

}

?>

Ao executar o ficheiro “insere.php” o sistema gravará sua senha na base de dados.

OBS.: Ele também deverá lhe redirecionar para a página “verificasenha.php”, onde você verificará a senha já criptografada.

IMPORTANTE:

Veja que no código de inserção, temos o trecho “password(‘$senha’)”.

Se você não puser o “password” antes da variável que terá a senha o PHP não entenderá que ele deve criptografar o conteúdo informado.

Verificando A Senha Cadastrada

Após cadastrar o conteúdo, nada mais justo que verificar em tela “nova” senha a ser apresentada na base de dados, correto?

Para visualizar os dados, o procedimento também é simples. Veja o exemplo a seguir:


<?php

include('conexao.php');

$senha = '123456';

$query_select = "SELECT senha,cript FROM tbl_criptografia WHERE cript = password('$senha')";Internet Explorer 9, uma nova história?
$rs_select    = mysql_query($query_select);

if($rs_select){

$campo_select = mysql_fetch_array($rs_select);
$cript_select = $campo_select['cript'];
$senha_select = $campo_select['senha'];

echo "<br><br><b>Sua senha utilizada foi:</b> $senha_select

<br><br>
<b>O resultado criptografado desta senha é:</b> $cript_select";
echo"<br><br>
Se quiser excluir o conteúdo da tabela para executar um novo teste, <a href='excluir.php'>clique aqui</a>";

}else{

echo "Desculpe, essa senha não está cadastrada na base de dados";

}
?>

No exemplo acima, usamos a função “password()”.

Através dela o sistema reconhece o que está cadastrado, trazendo em tela as senhas.

Bem… até para facilitar seu uso (já que enviamos cópia do ficheiro em anexo), estamos enviando um script básico de exclusão!

Assim você poderá excluir os dados da base de dados sem precisar acessar o BD.

Como você pode ver, o exemplo acima é simples… Tem apenas os campos “id” (que é usado padrão), “senha” e “cript”.

Não fiz um conteúdo complexo, até para que você possa implementar este conteúdo e usar em seu web site.

Espero que este exemplo lhe seja útil e prático de se usar!

Download do código usado neste tutorial: ficheiros.zip

Be Sociable, Share!

5 Comentários

  1. MAURO

    Tudo bom. Estou começando a estudar e estou em dúvida: criei um banco chamado bancosenha e a tabela é tbl_criptografia – onde eu coloco estas informações 

    $database = "SERVIDOR";    // nome do servidor
    $dbname   = "BASEDEDADOS"; // nome da base de dados
    $usuario  = "USUARIO";    // usuário MySQL
    $dbsenha  = "SENHA";      // senha do usuário MySQL

  2. samuel

    como faço para verificar se o suporte da senha criptografada esta funcionando

  3. E no caso para caso eu fizer um sistema que não mostre a senha criada, como eu reverteria caso eu perca a senha, como seria o revert deste hash?

  4. Outra coisa tambem seria como seria o arquivo para leitura e adentrar uma página protegida por esta senha criptografada, como seria o código para efetuar um login com esta senha já cadastrada.

Participa! Comenta...