Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Biel.

login e senha

Recommended Posts

Boa tarde a todos. Direto ao ponto. Pessoal abaixo temos um formulario somente com senha
O 1 EXEMPLO e o 2 EXEMPLO acesso o sistema normalmente .
O 3º EXEMPLO não consigo acessar o sistema, gostaria muito de poder acessar o sistema, se é possível claro com o 3º EX
tabela_aprendiz 
id  senha
1    123456
2    70512aa51d2f55a0eb83606017008c71c80296b818c2272f17d3002ded8fc962a74dd6726e03c9ad4a1256f619eee52f85300bc0637e92be89433824b6e78cfa

A criptografia abaixo corresponde a 852
70512aa51d2f55a0eb83606017008c71c80296b818c2272f17d3002ded8fc962a74dd6726e03c9ad4a1256f619eee52f85300bc0637e92be89433824b6e78cfa

....

<?php // 1 EXEMPLO
$senha=$_POST['senha']); // se eu digitar no formulario 123457, vou acessar o sistema porque o 7 será substituido por 6
$senha = str_replace("7", "6", $senha);
?>

<?php // 2 EXEMPLO
$senha=hash('sha512',$_POST['senha']); // se eu digitar no formulario 852 vou acessar o sistema normalmente, afinal a senha está correta
?>

<?php // 3 EXEMPLO
$senha=hash('sha512',$_POST['senha']); // // se eu digitar no formulario 859 , não funciona porque o 9 não é substituido por 2
$senha = str_replace("9", "2", $senha);
?>


$sql_acesso = mysql_query ("SELECT * FROM tabela_aprendiz WHERE senha = '".$senha."' ");

<table width="239"  border="0"  cellpadding="5" cellspacing="5">

<tr>
<td height="53" align="left"><b>Senha:</b><br />
  <input type="text" name="senha" value=""  /></td>
</tr>

<tr>
<td height="52" ><input type="submit"   value="Acessar" /></td>
</tr>

</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que isso esteja ocorrendo por que vc está efetuando um "replace" para substituir 9 por 2 no lugar erado.
Tenta colocar a substirução antes de vc criptografar a senha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lord_Rato obrigado por postar. Acredito que o replace DO EXEMPLO 3 está correto porque o replace do EXEMPLO 1 funciona normalmente.

EXEMPLO 1

<?php // 1 EXEMPLO
$senha=$_POST['senha']); // se eu digitar no formulario 123457, vou acessar o sistema porque o 7 será substituido por 6
$senha = str_replace("7", "6", $senha);
?>

.

$sql_acesso = mysql_query ("SELECT * FROM tabela_aprendiz WHERE senha = '".$senha."' ");

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php // 3 EXEMPLO
$senha=hash('sha512',$_POST['senha']); // // se eu digitar no formulario 859 , não funciona porque o 9 não é substituido por 2
$senha = str_replace("9", "2", $senha);
?>

Aqui vocês está dando replace diretamente no Hash. Tenta dar um replace no $_POST e depois passar pelo hash.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php // 3 EXEMPLO
$senha=hash('sha512',$_POST['senha']); // // se eu digitar no formulario 859 , não funciona porque o 9 não é substituido por 2
$senha = str_replace("9", "2", $senha);
?>

Aqui vocês está dando replace diretamente no Hash. Tenta dar um replace no $_POST e depois passar pelo hash.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

... LokiSchw obrigado pela dica

Gostaria  muito de saber como dar um replace no $_POST e depois passar pelo hast
<?php 
$senha=hash('sha512',$_POST['senha']);
$senha = str_replace("9", "2", $senha);
?>

Ou como dar um replace no $_POST e depois passar pelo md5
<?php 
$senha=md5($_POST['senha']);
$senha = str_replace("9", "2", $senha);
?>

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Lord_Rato obrigado por postar. Acredito que o replace DO EXEMPLO 3 está correto porque o replace do EXEMPLO 1 funciona normalmente.

EXEMPLO 1

<?php // 1 EXEMPLO
$senha=$_POST['senha']); // se eu digitar no formulario 123457, vou acessar o sistema porque o 7 será substituido por 6
$senha = str_replace("7", "6", $senha);
?>

.

$sql_acesso = mysql_query ("SELECT * FROM tabela_aprendiz WHERE senha = '".$senha."' ");

Não questionei o funcionamento da função replace, o que questionei é o momento em que você faz a substituição.

Pense que a variável $senha está sendo criptografada com o que o usuario digitou antes de ser feito a substiruição dos caracteres, portanto, a variável $senha contém a string de encriptação com caracteres alterados pelo replace. No banco de dados a senha criptografada também deverá ter seus caracteres alterados.

 

Assim acredito que funcione.

<?php

$senha = str_replace("9", "2", $_POST['senha']);

$senha=hash('sha512',$senha);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

... LokiSchw obrigado pela dica

Gostaria  muito de saber como dar um replace no $_POST e depois passar pelo hast
<?php 
$senha=hash('sha512',$_POST['senha']);
$senha = str_replace("9", "2", $senha);
?>

Ou como dar um replace no $_POST e depois passar pelo md5
<?php 
$senha=md5($_POST['senha']);
$senha = str_replace("9", "2", $senha);
?>

...

 

Faça assim:

<?php
$senha= $_POST['senha'];
$senha = hash('sha512',str_replace("9", "2", $senha));
?>

e

<?php 
$senha=$_POST['senha'];
$senha = md5(str_replace("9", "2", $senha));
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.