Olá pessoal,
Nesse post tenho uma pergunta muito importante para lhe fazer: Qual a criptografia da senha dos seus usuários? Espero sinceramente que a resposta não seja “somente md5″. Pois hoje em dia temos vários bancos de dados gigantescos que provavelmente terão sua senha gerada e será fácil para um invasor conseguir “descriptografar” a senha.
Para que todos possamos dormir tranquilos vou deixar um script para criptografar as senhas do BD. Ele chega ser ate meio “exagerado”, mas nada que ira comprometer o tempo de login e nem gerar processamento. Segue ele:
Fonte: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Nesse post tenho uma pergunta muito importante para lhe fazer: Qual a criptografia da senha dos seus usuários? Espero sinceramente que a resposta não seja “somente md5″. Pois hoje em dia temos vários bancos de dados gigantescos que provavelmente terão sua senha gerada e será fácil para um invasor conseguir “descriptografar” a senha.
Para que todos possamos dormir tranquilos vou deixar um script para criptografar as senhas do BD. Ele chega ser ate meio “exagerado”, mas nada que ira comprometer o tempo de login e nem gerar processamento. Segue ele:
Código PHP:
<?
class cript_senha_db{
var $hash;
var $senha;
public function Randomizar($iv_len){
$iv = '';
while ($iv_len-- > 0) {
$iv .= chr(mt_rand(0,20) & 0xff);
}
return $iv;
}
public function gera(){
$this->senha .= "\x13";
$texto = $this->senha;
$n = strlen($texto);
if ($n % 16) $texto .= str_repeat("\0", 16 - ($n % 16));
$i = 0;
$Enc_Texto = $this->Randomizar($this->hash);
$iv = substr($Enc_Texto, 0, 512);
while ($i < $n) {
$Bloco = substr($texto, $i, 16) ^ pack('H*', md5($iv));
$Enc_Texto .= $Bloco;
$iv = substr($Bloco . $iv, 0, 512);
$i += 16;
}
$pass1 = base64_encode(urlencode($Enc_Texto));
$pass2 = md5($pass1);
for($x=0;$x<500;$x++){
$pass2 = md5($pass2);
}
$pass_final = substr(sha1(md5($pass2)), 1, 37);
return $pass_final;
}
}
$gera = new cript_senha_db(); //chama a classe
$gera->senha = "minhadatanascimento"; //aqui vai a senha
$gera->hash = "!#sdfa#215r3*(7aasjd1)(*hjasbndf"; //has para o 'salt'
$senha_cript = $gera->gera(); //faz a magica
print 'SENHA ORIGINAL: minhadatanascimento';
print '<BR>SENHA MD5: '.md5('minhadatanascimento');
print '<BR>SENHA CRIPTOGRAFADA: '.$senha_cript;
?>
Comment