Jump to content

Question

[Pergunta] Sistema de login com senha criptografada

 

Eu tenho um jogo e quando eu faço o cadastro coloco por exemplo: username: Thiago e Password: Thiago123, mas ai no banco de dados a senha aparece criptografada: 1.thumb.png.7d4532a3aa63d8f8b0e96631b78bde7e.png

 

E na hora de fazer login eu coloco no Username: Thiago e na Password: Thiago123, mas não entra, e quando eu coloco a senha criptografada igual da imagem acima, entra normalmente no jogo.

 

Oque eu queria saber é como tirar a criptografia do password do meu banco de dados ou se não tiver como, queria mudar o index.php , que esta assim:2.thumb.png.0ed071d0f048bf61c2d7f900283e13fb.png

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Isso acontece porque você usa algo para encriptar quando a pessoa se registra e na hora de logar (buscar) você não trata a string retornada na password transformando ela no mesmo código que foi gerado na hora do registro.

Se no registro você usa:

md5($_POST["password"]);

 

Quando você for buscar no banco de dados para verificar se a senha está correta, você trata a string da mesma forma.

Share this post


Link to post
Share on other sites
  • 0
Guest

Olá @rookier, é exatamente como o @jamesbond disse, se você salva a senha no seu banco como uma string criptografada seja com sha1, md5, ou outro tipo, você deve conferí-la na hora do login novamente criptografando ela, por exemplo:

 

//Recebo as variáveis do form
$login = $_POST['email_form'];
$senha = $_POST['senha_form'];

//Codifico a senha do formulario, para que ela seja igual a do banco(no lugar do sha1 use o padrão que voce utilizou na sua aplicação)
$senha_codificada = sha1($senha);

//Faço a pesquisa no banco pelo email e senha que sejam iguais ao email e senha criptografada
$busca_SQL = "SELECT email,senha FROM usuarios WHERE email = '$login ' && senha = '$senha_codificada'";
$retorno = executaSQL($busca_SQL, $link);

No seu caso você deve criptografar a sua variável password e aí você conseguira logar sem problemas, principalmente pois md5() ou sha1() assim como em outros casos é uma criptografia de mão única, e não tem como você descriptografa-la.

 

Se você precisar descriptografa-la pesquise sobre base64():

 

http://blog.thiagobelem.net/criptografia-no-php-usando-md5-sha1-e-base64

http://php.net/manual/pt_BR/function.base64-encode.php

http://php.net/manual/pt_BR/function.base64-decode.php

 

Outro detalhe importante é que você CASO, utilize md5, sha1 e outros semelhantes, aprenda criptografia blowfish, o bcrypt, que é mais seguro e moderno, uma vez que gera um salt dinâmico, e não fixo, diferente do md5 e outros, que por exemplo "Olá Mundo" sempre será "ca4e913424bfcfe71c016829a371a1f1" e com blowfish as senhas ficam mais protegidas e são geradas com valores diferentes.

 

https://secure.php.net/manual/pt_BR/function.crypt.php

http://blog.thiagobelem.net/criptografando-senhas-no-php-usando-bcrypt-blowfish

http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-blowfish/

Share this post


Link to post
Share on other sites
  • 0
Em 06/03/2017 at 08:42, Saul da Silva Rolim disse:

Olá @rookier, é exatamente como o @jamesbond disse, se você salva a senha no seu banco como uma string criptografada seja com sha1, md5, ou outro tipo, você deve conferí-la na hora do login novamente criptografando ela, por exemplo:

 


//Recebo as variáveis do form
$login = $_POST['email_form'];
$senha = $_POST['senha_form'];

//Codifico a senha do formulario, para que ela seja igual a do banco(no lugar do sha1 use o padrão que voce utilizou na sua aplicação)
$senha_codificada = sha1($senha);

//Faço a pesquisa no banco pelo email e senha que sejam iguais ao email e senha criptografada
$busca_SQL = "SELECT email,senha FROM usuarios WHERE email = '$login ' && senha = '$senha_codificada'";
$retorno = executaSQL($busca_SQL, $link);

No seu caso você deve criptografar a sua variável password e aí você conseguira logar sem problemas, principalmente pois md5() ou sha1() assim como em outros casos é uma criptografia de mão única, e não tem como você descriptografa-la.

 

Se você precisar descriptografa-la pesquise sobre base64():

 

http://blog.thiagobelem.net/criptografia-no-php-usando-md5-sha1-e-base64

http://php.net/manual/pt_BR/function.base64-encode.php

http://php.net/manual/pt_BR/function.base64-decode.php

 

Outro detalhe importante é que você CASO, utilize md5, sha1 e outros semelhantes, aprenda criptografia blowfish, o bcrypt, que é mais seguro e moderno, uma vez que gera um salt dinâmico, e não fixo, diferente do md5 e outros, que por exemplo "Olá Mundo" sempre será "ca4e913424bfcfe71c016829a371a1f1" e com blowfish as senhas ficam mais protegidas e são geradas com valores diferentes.

 

https://secure.php.net/manual/pt_BR/function.crypt.php

http://blog.thiagobelem.net/criptografando-senhas-no-php-usando-bcrypt-blowfish

http://www.pedrofilho.com.br/blog/2009/11/13/sobre-o-blowfish/

Como eu faço para ver qual criptografia estou usando ?

Share this post


Link to post
Share on other sites
  • 0
3 horas atrás, rookier disse:

Como eu faço para ver qual criptografia estou usando ?

 

Suponho que já pegou o código pronto... Na parte onde ele recebe os valores para registro ou direto na query.

Share this post


Link to post
Share on other sites
  • 0
7 minutos atrás, rookier disse:

Sou iniciante em php, peguei os arquivos php já prontos, não entendo mt bem de query ou string... 

Então é aconselhável que você faça um curso básico sobre o assunto amigão

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By djwagnersp
      Bom dia amigos, tudo bem? estou com uma duvida se alguém puder me ajudar agradeço desde já.
       
      tenha a seguinte condição:
      //array dos produtos $prod = 'agua'; $prod = 'refri'; $prod = 'cerveja'; //array das quantidades $qtd = '3'; $qtd = '2'; $qtd = '6'; Gostaria de fazer um loop o for ou foreach que imprimisse o $prod a quantidade de vezes do $qtd
      como seria possível realizar isso?
    • By Porteela
      Preciso de um sistema para o meu site. Quando uma pessoa clicar em um botao quero que busque um email e senha no banco de dados e mostre a pessoa.
      Pago ate 20 reais chama discord Porteela#7954
    • By tiago.rizzon
      Boa tarde pessoal!
      Alguém poderia me dizer oq está errado na minha primeira tentativa de conectar com DB mysql?
      Em anexo coloquei print do erro no browser e print dos dados de acesso ao banco.
      Meu usuário é megasys.com, o nome do DB q quero acessar é CL001... q contem uma tabela teste FUN...
      Desde já agradeço!!
      Obrigado!
       
      meu index.php está assim:
       
      <!DOCTYPE html>
      <html>
      <body>
      <?php
      $link = mysql_connect('mysql22.redehost.com.br,3306', 'megasys.com', 'minhaSenha');
      if (!$link) {
          die('Não foi possível estabelecer uma conexão com o MySQL : ' . mysql_error());
      }
      $db_selected = mysql_select_db('CL001', $link);
      if (!$db_selected) {
          die ('Não foi possivel acessar o banco de dados: ' . mysql_error());
      }
      ?>
      </body>
      </html>


    • By Cascais51
      Olá, pessoal!
      Tenho um banco de dados com 111 tabelas de um sistema de gestão feito para um cliente. Acontece que agora quero transformar esse sistemas em SaaS, Quero manter ele com a mesma base, apenas incluindo uma tabela "licencas" onde terei o cadastro de meus clientes na modalidade SaaS com as configurações necessárias e possíveis ligações com tabelas de mensalidades e etc.
      Pois bem, para não fazer grandes alterações nesse sistema, adicionei uma coluna de nome "licenca" em cada uma das 111 tabelas e fiz uma chave estrangeira em cada uma ligando a chave primária da tabela "licencas" (id_licenca).
      A ideia é com mais tempo organizar para apenas as tabelas chaves terem essa ligação com a tabela licencas, mas por enquanto tenho pouco tempo, mas gostaria de saber de vocês se ter essa coluna "licenca"  em todos as tabelas ligando a tabela licenças vai ser muito custoso em processamento para meu banco de dados, ou é indiferente?

      Acham que eu deveria deixar o campo sem chave estrangeira?
       
      Enviei a imagem com o diagrama de apenas 5 tabelas para ilustrar. são muitas tabelas para enviar todas.

    • By Leonardo Ortega
      Prezados, bom dia.
      sou novo por aqui, e me deparei com esta situação:
      estou desenvolvendo um projeto e tudo começou quando apenas mudei o banco de dados que estava conectado. Ou seja, se eu me conecto ao baco de dados anterior, volta todo código html, porém, se conecto ao banco de dados atual as divs desaparecem. 
       
      obs: Isso tb acontece quando eu desativo o php tudo volta como a imagem 1 e se eu ativo fica como a imagem2.
       
      quem pode me ajudar.. desde já muito obrigado.  


×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.