Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde estava pesquisando, achei alguns sites que descriptografa md5, os meus md5 que tem no banco não deu certo, mais tinha alguns exemplos que realmente funcionou.
qual criptografia mais segura atualmente?
fontes :
http://pt.kioskea.net/faq/5283-mitos-md5-foi-quebrado
http://blogholmes.com.br/postagens/ler/280-senha-em-md5-mais-segura
Qual o comando para criptografar em php a palavra "xurisso", e descriptografar usando estas criptografias que você mencionou?
Tenho a mesma duvida do colega, só falta me passar o código em php para usar elas!
SHA-256, SHA-512, Bcrypt, etc. com um salt.
pode dar um exemplo no php?
por que esse e melhor que md5?
o que é isso "com um salt"?
SHA-256 ou maior supostamente nunca foi quebrado mas eu evitaria qualquer algorítimo ligado a NSA por conta do caso Snowden.
Um hash MD5 equivalente ao dos dados originais pode ser obtido usando o processamento de placas de vídeo.
#3
Hashs são unidirecionais, isso significa que um vez que a informação é criptografada ela não pode ser recuperada.
Edit
Nesse artigo tem um bom código bem explicadinho: http://blog.thiagobelem.net/criptografando-senhas-no-php-usando-bcrypt-blowfish/
Eu acho que o melhor não é somente trocar de criptografia para este caso,
E sim, criptografar a propria criptografia em um outro tipo de criptografia.
Assim se alguem descriptografar vai encontrar um codigo criptografado e e terá que descriptografar ambos, o confundindo e desistindo.
Olá erison, eu já avisei para várias pessoas que a criptografia com md5 é muito ruim e não é recomendada por livros de php .
Ele é sim vulnerável e os amigos a cima estão completamente certos! você deve mudar para o SHA .
Segue um exemplo que eu utilizei em meu site:
<?php
// Definir constantes de conexão de banco de dados
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'SUABASEDEDADOS');
// Conectando a base de damos
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (isset($_POST['submit'])) {
// Recebendo informações do formulario de cadastro
$username = mysqli_real_escape_string($dbc, trim($_POST['username']));
$senha1 = mysqli_real_escape_string($dbc, trim($_POST['password1']));
$senha2 = mysqli_real_escape_string($dbc, trim($_POST['password2']));
if (!empty($username) && !empty($senha1) && !empty($senha2) && ($senha1 == $senha2)) {
// Certifique-se de alguém que ainda não esteja registrado com esse nome de usuário
$query = "SELECT * FROM SUATABELA WHERE username = '$username'";
$data = mysqli_query($dbc, $query);
if (mysqli_num_rows($data) == 0) {
// O nome do usuário é original, assim inserir os dados no banco de dados
$query = "INSERT INTO SUATABELA (username, password, join_date) VALUES ('$username', SHA('$senha1'), NOW())";
mysqli_query($dbc, $query);
// Confimando o Sucesso do cadastro
echo '<p>Sua nova conta foi criada com sucesso. Agora você está pronto para<a href="login.php">Logar</a>.</p>';
mysqli_close($dbc);
exit();
}
else {
// Se existir uma conta já cadastrada, exibir a mensagem de erro .
echo '<p class="error">Já existe uma conta para este username. Por favor, utilize um endereço diferente.</p>';
$username = "";
}
}
else {
//Se o usuário não preencher nenhum campo, exibir a mensagem de erro .
echo '<p class="error">Você deve digitar todos os dados de inscrição, incluindo a senha desejada duas vezes.</p>';
}
}
?>
Meu Site: http://abluetv.com
Fonte: Use a cabeça, PHP & MYSQL - http://www.altabooks.com.br/use-a-cabeca-php-and-mysql.html
SHA-1 é tão vulnerável quanto MD5 e usar comando do banco de dados para gerar hash é um pouco mais lento.
Atualmente estou usando bastante bcrypt, ele parece ser seguro e não o estudei profundamente pra ver se há alguma vulnerabilidade, mas pelo que li ele é um dos mais seguros hoje.
Caso você se interesse, tem esse tutorial bem básico do Thiago Belem:
:seta: Criptografando senhas no PHP usando bcrypt (Blowfish)
[edit] Ops, repostei o que o @Raoni Botelho Sporteman postou (link)
Cara, se você souber o codigo php de descriptografar md5 ou seja la qual for a criptografia vai dar na mesma,
a diferença é que algumas são menos conhecidas por hackers leigos (scriptkids), e a md5 é a mais conhecida.
Melhor é como eu falei, criptografa, e depois manda criptografar denovo, em duas vezes com duas criptografias diferentes você vai enrolar bem o camarada se quer segurança de verdade, faça até 4 vezes cada uma com uma diferente.
Não isso, é que se não há um salt, é muito mais fácil pra descriptografar, sendo que a criptografia de determinada string sempre vai ser a mesma.
Criptografia (two way) é diferente de hashing (one way), cuidado com os termos. O que nós estamos falando aqui é hashing.
Ao fazer hashing do hash — ex: sha512(sha512(password)) —, o risco de conflito aumenta e, consequentemente, diminui a segurança. Um salt decente + bcrypt resolve o problema tranquilamente.
Uma duvida, por que daria conflito? Conheco uma empresa de games que faz 4 criptografias da senha dos usuarios, e eu não imagino por que iria dar conflito.
é uma duvida mesmo nao estou te duvidando
Seria colisão a palavra correta, perdão.
Todo algorítimo hash tem uma chance (normalmente pequena) de ter uma colisão porque as possibilidades de output são menores do que as de input (não existe hash de mil caracteres, mas existe texto de dois mil caracteres, por exemplo).
Se estipularmos um risco de colisão em 0,00001%, esse é o risco de colisão para um hash. Agora, se esse é feito um hash do hash esse risco aumenta para 0,00002% e assim vai.
É coisa pequena, principalmente para senhas (menos de 40 caracteres certamente), mas é relevante se paramos para pensar que estamos usando mais processamento para regredir. Esse problema pode ser mais visivelmente explorado com o Birthday Attack.
Entendi
A melhor forma, certamente é o bCrypt com salt dinâmico. O pessoal já postou o link aqui, realmente é muito bom. Eu aconselho.
bCrypt e função nativa do php?
no manual do php achei apenas crypt
http://www.php.net/manual/pt_BR/function.crypt.php
>
Olá erison, eu já avisei para várias pessoas que a criptografia com md5 é muito ruim e não é recomendada por livros de php .
Ele é sim vulnerável e os amigos a cima estão completamente certos! você deve mudar para o SHA .
Segue um exemplo que eu utilizei em meu site:
<?php
// Definir constantes de conexão de banco de dados
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'SUABASEDEDADOS');
// Conectando a base de damos
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (isset($_POST['submit'])) {
// Recebendo informações do formulario de cadastro
$username = mysqli_real_escape_string($dbc, trim($_POST['username']));
$senha1 = mysqli_real_escape_string($dbc, trim($_POST['password1']));
$senha2 = mysqli_real_escape_string($dbc, trim($_POST['password2']));
if (!empty($username) && !empty($senha1) && !empty($senha2) && ($senha1 == $senha2)) {
// Certifique-se de alguém que ainda não esteja registrado com esse nome de usuário
$query = "SELECT * FROM SUATABELA WHERE username = '$username'";
$data = mysqli_query($dbc, $query);
if (mysqli_num_rows($data) == 0) {
// O nome do usuário é original, assim inserir os dados no banco de dados
$query = "INSERT INTO SUATABELA (username, password, join_date) VALUES ('$username', SHA('$senha1'), NOW())";
mysqli_query($dbc, $query);
// Confimando o Sucesso do cadastro
echo '<p>Sua nova conta foi criada com sucesso. Agora você está pronto para<a href="login.php">Logar</a>.</p>';
mysqli_close($dbc);
exit();
}
else {
// Se existir uma conta já cadastrada, exibir a mensagem de erro .
echo '<p class="error">Já existe uma conta para este username. Por favor, utilize um endereço diferente.</p>';
$username = "";
}
}
else {
//Se o usuário não preencher nenhum campo, exibir a mensagem de erro .
echo '<p class="error">Você deve digitar todos os dados de inscrição, incluindo a senha desejada duas vezes.</p>';
}
}
?>
Meu Site: http://abluetv.com
Fonte: Use a cabeça, PHP & MYSQL - http://www.altabooks.com.br/use-a-cabeca-php-and-mysql.html
ola não achei onde você esta criptografando a sua senha,
esse seu site : http://abluetv.com , revise seu codigo pois o mesmo esta com falha de sql(sql injection).
para mais na frente não ter dor de cabeça.
>
Cara, se você souber o codigo php de descriptografar md5 ou seja la qual for a criptografia vai dar na mesma,
a diferença é que algumas são menos conhecidas por hackers leigos (scriptkids), e a md5 é a mais conhecida.
Na verdade mesmo com acesso aos dados criptografados e com um entendimento profundo do algorítimo de criptografia usado nele com todas suas operações matemáticas e tudo que elas implicam é impossível quebra qualquer criptografia decente.
Alguém aí pode me dizer qual é a minha senha MD5 que está salva em meu banco de dados, e então descriptografá-la ?! rsrsrsrsr
Vocês não acham um pouco difícil de alguém invadir a aplicação de vocês, devido ao uso do MD5 ? Vocês levam apenas em consideração de que o MD5 é inseguro ? e os demais fatos ?
>
Alguém aí pode me dizer qual é a minha senha MD5 que está salva em meu banco de dados, e então descriptografá-la ?! rsrsrsrsr
Vocês não acham um pouco difícil de alguém invadir a aplicação de vocês, devido ao uso do MD5 ? Vocês levam apenas em consideração de que o MD5 é inseguro ? e os demais fatos ?
Pesquisando no google por md5 rainbow table eu vi esse site (que ainda permite o download da wordlist):
É aquela velha história: O seguro morreu de velho. Rs
(Obs: entendi o que vc quis dizer, só que prefiro não utiliza-lo em alguns casos :D)
Vocês levam apenas em consideração de que o MD5 é inseguro ?
Não...mas pode ser uma das entradas...
Sempre é bom fazer de tudo para que não aconteça nada. Rs
(se falei besteira me corrijam)
>
Alguém aí pode me dizer qual é a minha senha MD5 que está salva em meu banco de dados, e então descriptografá-la ?! rsrsrsrsr
Vocês não acham um pouco difícil de alguém invadir a aplicação de vocês, devido ao uso do MD5 ? Vocês levam apenas em consideração de que o MD5 é inseguro ? e os demais fatos ?
Vazamento de dados do banco é problema relativamente comum, vai muito além de tentar filtrar injeção slq. O fato de ninguém ter invadido seu servidor ou estar disposto a isso não significa que não exista alguém que possa fazer-lo .
Mesmo grandes empresas que fazem tudo como manda o figurino sofrem com o problema. Devemos estar preparados para esta situação, se ocorrer vazamento do seu bd o MD5 não vai cumprir a função há que se propõe: proteger a senha dos seus usuários.
Usar um salt juntamente com um MD5 já é seguro. O problema é que com o passar do tempo os algorítimos de hashing se tornam cada vez mais defasados. Hoje em dia o bcrypt pode ser muito bom, mas daqui a 50 anos ele provavelmente não será.
Alaerte, como eu disse, MD5 é hashing, e não criptografia. Não existe um algorítimo possível de descoberta de hash, mas o MD5 já tem uma lista enorme de valores comuns e tem uma probabilidade de colisão maior do que a dos outros. Se você googlear "md5 collisions", você acha exemplos de colisões. Agora, faça o mesmo com "sha512 collisions", e verá que não há uma sequer, porque com a tecnologia atual é impraticável fazer algo como isso.
podem dar um exemplo de bcrypt ? o que achei foi apenas crypt
no caso assim ?
hash('sha512','minha_senha');
Já postaram um link: http://blog.thiagobelem.net/criptografando-senhas-no-php-usando-bcrypt-blowfish/
>
podem dar um exemplo de bcrypt ? o que achei foi apenas crypt
no caso assim ?
hash('sha512','minha_senha');
bcrypt se refere ao método baseado no algorítimo Blowfish, ele não é uma função PHP .
A função que usamos para implement-lo é a crypt() . Detalhes no link que recomendamos.
>
Vazamento de dados do banco é problema relativamente comum, vai muito além de tentar filtrar injeção slq. O fato de ninguém ter invadido seu servidor ou estar disposto a isso não significa que não exista alguém que possa fazer-lo .
Mesmo grandes empresas que fazem tudo como manda o figurino sofrem com o problema. Devemos estar preparados para esta situação, se ocorrer vazamento do seu bd o MD5 não vai cumprir a função há que se propõe: proteger a senha dos seus usuários.
...rsrsrs Claro companheiro, mais do que ninguém eu sei disso, só queria ver as respostas. Porém a probabilidade de alguém descobrir a possível senha ou o hash dela é quase nula. Já se tratando de colisões, com certeza existe a possibilidade.
>
Usar um salt juntamente com um MD5 já é seguro. O problema é que com o passar do tempo os algorítimos de hashing se tornam cada vez mais defasados. Hoje em dia o bcrypt pode ser muito bom, mas daqui a 50 anos ele provavelmente não será.
Alaerte, como eu disse, MD5 é hashing, e não criptografia. Não existe um algorítimo possível de descoberta de hash, mas o MD5 já tem uma lista enorme de valores comuns e tem uma probabilidade de colisão maior do que a dos outros. Se você googlear "md5 collisions", você acha exemplos de colisões. Agora, faça o mesmo com "sha512 collisions", e verá que não há uma sequer, porque com a tecnologia atual é impraticável fazer algo como isso.
Troquei as bolas, utilizei o termo criptografia para o MD5, e não tem nada haver. Costume de falar a marvada palavra. :skull:
Bem pessoal, eu em particular, utilizo o md5 com o salt, já me satisfaz e eu nunca tive problema com esse tipo de dados. Enrico, tenho conhecimento das colisões do MD5, já li muito sobre. Por isso utilizo o salt.
SHA-256, SHA-512, Bcrypt, etc. com um salt.