Jump to content

[Resolvido] Encriptação de Passwords PHP


Santana Oliveira
 Share

Recommended Posts

Boa tarde

Alguém sabe se é possivel e se não existe nenhum problema em ecriptar uma password 2 vezes ou seja ecriptar uma password e depois ecriptar a palavra já ecriptada.

Ou se ja fazer:

$password = hash('sha512', $password );
$password = hash('whirlpool', $password );

em vez de $password = hash('whirlpool', $password ); apenas?

Fica mais seguro? Pode existir conflito?

Alguém me pode ajudar?

Link to comment
Share on other sites

se as duas operações f e g são bijectivas não existe problema nenhum em aplicar f(g(X)) pois poderás sempre aplica as funções subrejectoras que terás sempre X de volta : g'(f'(Y))

se é mais seguro ? não.

pensa bem : se para quebrar uma palavra-chave tens de aplicar uma função h, não interessa se esse h é igual à função f, g ou à composta f->g. basta saber qual o tipo de função é a função h.

por outras palavras, basta saber que o teu sistema aplica a composta desses dois métodos que o processo de conversão/descoberta é o mesmo e tem o mesmo tempo de processamento

-------------

ps : esta resposta faz-me lembrar um utilizador recente que veio para o fórum fazer posts que vieram a ser apagados onde um dois quais referia que usava matemática para um caso de higiene pessoal ...

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

se as duas operações f e g são bijectivas não existe problema nenhum em aplicar f(g(X)) pois poderás sempre aplica as funções subrejectoras que terás sempre X de volta : g'(f'(Y))

se é mais seguro ? não.

pensa bem : se para quebrar uma palavra-chave tens de aplicar uma função h, não interessa se esse h é igual à função f, g ou à composta f->g. basta saber qual o tipo de função é a função h.

por outras palavras, basta saber que o teu sistema aplica a composta desses dois métodos que o processo de conversão/descoberta é o mesmo e tem o mesmo tempo de processamento

-------------

ps : esta resposta faz-me lembrar um utilizador recente que veio para o fórum fazer posts que vieram a ser apagados onde um dois quais referia que usava matemática para um caso de higiene pessoal ...

Então como posso deixar a minha ecriptação mais segura já que existe varios desencriptador como https://crackstation.net/

Link to comment
Share on other sites

Guest faviouz

Recomendo ler How To Safely Store A Password para uma apreciação geral e curta do problema. Essencialmente, bcrypt é a melhor método para guardar passwords. Qualquer outro método deve ser evitado - incluindo hash(password+salt).

Em PHP existe uma nova API para gerar password hashes com o bcrypt:

https://gist.github.com/nikic/3707231

Definitivamente é o método mais simples e seguro. Não percas mais tempo com outras soluções.

Link to comment
Share on other sites

Não nego que bcrypt seja uma vantagem, mas esse artigo, e muitos outros por aí, focam o facto de que bcrypt é mais lento e por isso demora mais tempo a determinar uma hash, e assim torna-se mais lento tentar encontrar uma colisão, mesmo que o bcrypt tenha um esquema de iniciação mais completo (e lento) e que faça uso de salts internas, não deixa de ser uma função de hash e ter as mesmas características que as restantes e, nesse caso, a mesma falha que todas as outras em que existem colisões. É mais difícil encontrar colisões mas continua a ser possível, e o argumento da velocidade só será importante se alguém estive a tentar criar colisões gerando passwords e as hashes no momento e tipicamente o problema é mitigado com tabelas de hashes pré-computadas.

Além disso, a segurança ao gravar as passwords é relevante apenas quando o atacante já tem acesso a toda a base de dados... nesse caso a segurança já falhou há muito tempo.

Não pretendo negar o uso de bcrypt, apenas lembrar que a segurança de um sistema é composta por muito mais coisas que o algoritmo de hashing que usam para guardar passwords na base de dados, diria até que esse é um ponto menor porque quando for testado já um atacante controla toda a base de dados e para isso o mais certo é controlar todo o sistema, facilmente troca o algoritmo da hashing ou modifica o sistema de forma a ter as passwords sem sequer ter de tentar encontrar colisões.

  • Vote 1
Link to comment
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
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.