Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal é o seguinte to criando um sistema, e preciso de bastante segurança para os usuários do msm.
Tentei usar OpenSSL para criptografar senha mas não obtive sucesso. Então usei um jogo de hash e mcrypter. Queria saber oque vcs acharam e se ficaria realmente seguro.
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of fun
*
* @author Big Dell
*/
class funcoes {
public function camuflaSenhas($senhas) {
try {
$camufla = md5(base64_encode($senhas));
$texto = 'Segunda parde do desafio começa aqui!' . md5($senhas);
$texto = $texto . 'Eu sei' . sha1($camufla) . 'oque';
$camufla = md5($texto);
$texto = 'Eu sei' . sha1($camufla) . 'oque' . md5($camufla) . 'você fez';
$camufla = sha1($texto);
$texto = sha1(base64_decode(sha1($camufla) . 'Eu sei' . md5($camufla) . 'oque' . sha1($camufla) . 'você fez' . md5($camufla) . 'verão passado' . sha1($camufla)));
$camufla = sha1($texto);
$texto = ' Parabens você conseguiu a senha: ' . md5($camufla);
$key1 = $camufla;
$key2 = $texto;
$input = md5($senhas);
$length = strlen($input);
/* Open the cipher */
$td = mcrypt_module_open('rijndael-256', '', 'cbc', '');
/* Create the IV and determine the keysize length, use MCRYPT_RAND
* on Windows instead */
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);
/* Create key */
$key1 = md5($key1);
$key2 = sha1($key2);
$key = substr($key1, 0, $ks / 2) . substr(strtoupper($key2), (round(strlen($key2) / 2)), $ks / 2);
$key = substr($key . $key1 . $key2 . strtoupper($key1), 0, $ks);
/* Intialize encryption */
mcrypt_generic_init($td, $key, $iv);
/* Encrypt data */
$encrypted = mcrypt_generic($td, $input);
/* Terminate encryption handler */
mcrypt_generic_deinit($td);
/* Initialize encryption module for decryption */
mcrypt_generic_init($td, $key, $iv);
/* Decrypt encrypted string */
$decrypted = mdecrypt_generic($td, $encrypted);
/* Terminate decryption handle and close module */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
$camufla = sha1(md5($encrypted));
return $camufla;
} catch (Exception $exc) {
echo 'Erro ao Camulhar Senha:' . $exc->getMessage();
return false;
}
}
}
uma senha gerada com o sistema: cbd6bfac19286e95824c8f222b7e44a852052f68
A criptografia até que está boa, mas lembre-se.
A teoria e a prática nos tem mostrado e provado que, o elo mais fraco da segurança é o peopleware.
Em muitos casos, mais vale um ataque de EngSoc bem elaborado e aplicado do que cem ataques de Força Bruta.
Em outros casos, as GPUs costumam fazer muito bem o seu trabalho.
Não esqueça dos outros detalhes.
[ ]'s
Trate senha, como senha, então use as funções password_hash password_verify
(Disponível a partir da versão do PHP 5 >= 5.5.0)
Entendi, então não posso usar md5 ou sha1? ou ate msm mcrypter ?
Ou posso usar tudo junto e no final gerar uma password_hash password_verify
Ou posso usar tudo junto e no final gerar uma password_hash password_verify
Qual a necessidade de juntar tudo novamente?
Não sei se leu o manual, é o que mais acontece por aqui, pois querem sempre a receita pronta!
Esta função password_hash faz tudo oque foi descrito nos posts acima, a diferença é que é ela é mais robusta, é projetada para mudar ao longo do tempo à medida que novos e mais fortes algoritmos de criptografia são adicionados ao PHP.
A entendi, amigo. E realmento o codigo fica menor. E a hash é bem maior.
Eu acho mais simples e mais seguro usar um método de criptografia do PHP como o "whirlpool", que além dele existe mais dois. Ele é uma criptografia de mão única, em resumo não pode ser descriptografado só comparado com outras strings como senhas em bancos de dados. Abaixo segue um exemplo funcional de como usar esse método de criptografia:
Resultado:
Criptografada com o whirlpool: cce08bba3f2e3c029cd257104b06d4b075772d5f514cf1b7789506f9a69d53c51464881d2c18445ab290553b302f67a24b1c69e3e737a46215deaf43517e4960