Ir para conteúdo

Arquivado

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

DunkMask

Problemas com UPDATE senha em sha1

Recommended Posts

Não sei se o titulo explica o problema, mas vamos la.

 

Meu problema é o seguinte. Construi um sistema administrativo com niveis, o problema esta sendo na hora de editar os dados.

 

Administrador Edita suas informações ou de outros usuarios

Uploader edita somente suas informações.

 

dai começa o problema, todas vez que editar suas informações tenho que editar a senha novamente, se nao ela grava os dados da senha criptografada no lugar.

 

Para entenderem melhor criei aqui um login de acesso ao sistema.

 

Site: www.fairyfan.com

Login: Imaster

Senha: imaster

 

Edite as informações do campo, clique em logou e logue novamente.

 

Se alguem puder me dar uma solução para evitar que a senha seja alterada sempre que editar eu agradeço. Quero se ele so modifique a senha quando o usuario quiser e nao toda vez que editar suas informações

 

 

Outra coisa, aproveitando o topico aqui.

 

Parece que o site esta bugando em outros navegadores, poderiam me explicar como criar uns hack para esses navegadores ou postar aqui um topico do forum que explique isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o quê especificamente eu tenho que mudar pra dar problema na senha?

 

Inseri e removi um arco e uma notícia normalmente, fiz logoff e logon tudo sem problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, me desculpe, nao especifiquei direito.

Mas o problema é nas informações do usuario e nao do conteudo.

 

Existe um menu chamado staff, nele existe um campo chamado Editar campo. Edite suas informações la para você ver

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi. Remova a opção de mostrar a senha. Como Sha1 é um Hash, não é possível reverter (até é) a criptografia, acontece que, salvando os campos daquele jeito, o banco de dados vai receber uma nova senha, que é o sha1 da senha antiga... mais ou menos assim:

 

$senha = sha1(sha1('senha'));

 

Não exiba a senha anterior, permita que o usuário a modifique mediante 3 campos:

 

1- digite a senha atual: [campo em branco]
2- digite a nova senha: [campo em branco]
3- confirme a nova senha: [campo em branco]

Se for necessário recuperar a senha (Esqueci minha senha!) o que você deve fazer é gerar uma senha nova, aleatória que será enviada para o e-mail registrado.

 

Criptografias HASH como mdX e shaX são feitas exatamente para isso, uma vez registrada, a senha não pode ser recuperada, apenas comparada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesso desculpas peloa demora, é que so acesso net do meu trabalho.

deixa eu ver se entendi o que foi dit acima.

 

no arquivo enviar.php onde consta o codigo do upadate do db eu devo colocar assim:

 

cd_equipe.php

<?
$nome = $_POST['nome'];
$funcao = $_POST['funcao'];
$idade = $_POST['idade'];
$hobby = $_POST['hobby'];
$email = $_POST['email'];
$avatar = $_POST['avatar'];
$login = $_POST['usuario'];
$senha = $_POST['senha'];
$nivel = $_POST['nivel'];
$ativo = $_POST['ativo'];
$cadastro = $_POST['cadastro'];

//Editar os dados do usuario

if($_GET['page'] == "editar"){
	$pegar_nome = $_GET['nome'];
	$sql2 = mysql_query("UPDATE usuarios SET nome = '$nome',funcao = '$funcao',idade = '$idade',hobby = '$hobby',email = '$email',avatar = '$avatar',usuario = '$login',senha = '". sha1($senha) ."' WHERE nome = '$pegar_nome'");
	echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
	<meta HTTP-EQUIV='Refresh' CONTENT='0;URL=../?page=staff/editar'>
	<script type=\"text/javascript\">
	alert(\"Seus dados foram editado com sucesso.\");
	</script>";
}
?>

mudaria nas variaveis que pegam o resultado do forumario

$senha = sha1(sha1('senha'));

 

ou dentro d comando de update?

senha = ".sha1(sha1(senha))."

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. O que estou querendo dizer é que:

 

Enquanto você estiver criptografando a senha com hashes, não será possível exibir a senha salva.

 

Se deseja que exista um campo senha antiga que esteja preenchido, isto deve ser feito com criptografias reversíveis, como base_64.

Compartilhar este post


Link para o post
Compartilhar em outros sites

DunkMask, no seu caso acho que o melhor é você separar a edição dos dados de cadastro e a alteração de senha.

Ou seja, seu formulário atual só alteraria os dados, outro formulário seria responsável só pela alteração de senha, usando o formulário proposto pelo Evandro de 3 campos, sendo que o admin não precisaria digitar a senha atual.

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.