Biel. 9 Denunciar post Postado Dezembro 14, 2015 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
Lord_Rato 4 Denunciar post Postado Dezembro 14, 2015 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
Biel. 9 Denunciar post Postado Dezembro 14, 2015 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
LokiSchw 1 Denunciar post Postado Dezembro 14, 2015 <?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 1 Denunciar post Postado Dezembro 14, 2015 <?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
Biel. 9 Denunciar post Postado Dezembro 14, 2015 ... 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 4 Denunciar post Postado Dezembro 14, 2015 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 1 Denunciar post Postado Dezembro 14, 2015 ... 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
Biel. 9 Denunciar post Postado Dezembro 15, 2015 LokiSchw e Lord_Rato , muito obrigado. Questão resolvida. :D :D :D :D Compartilhar este post Link para o post Compartilhar em outros sites