Preâmbulo
O conceito de hashing em PHP é algo que está em chamas na Internet. Embora essas discussões normalmente incluam quais algoritmos usar e não usar. Alguns deles também incluem instruções. Em termos de CodeIgniter, ele possui um auxiliar de segurança. No entanto, como esse arquivo obtém hashes é horrÃvel, especialmente para novos desenvolvedores. Ele simplesmente pega a entrada e a executa por meio da função hash () do PHP . Meu arquivo auxiliar é projetado para melhorar o auxiliar de segurança existente (tudo-seja-isso, ignorando-o).
Arquivo
O nome do arquivo é hash_helper.php. Isso deve seguir as convenções de nomenclatura do CodeIgniter. O arquivo completo pode ser visto aqui .
Primeiro
A diferença que define entre meu auxiliar e o auxiliar de segurança nativo é o uso da criação de sal alfanumérico pseudoaleatório em letras maiúsculas e minúsculas.
if(!function_exists('generate_salt')){
function generate_salt($length = 10){
$source = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
$i=0;
$salt = '';
while($i<$length){ $salt.=substr($source,rand(1,strlen($source)),1);
$i+=1;
}
return $salt;
}
}
Como o link do GitHub acima explica, para alterar o comprimento de um salt, basta alterar o valor de $length
. No entanto, é importante que esse parâmetro permaneça e seja um número inteiro. felizmente, este não é o fim deste arquivo …
Segundo
Vamos continuar e criar um keygen para este arquivo, novamente, ele existe no arquivo GitHub. no entanto, no interesse de economizar espaço e simplesmente ter uma convenção de nomenclatura que faça sentido …
if(!function_exists('generate_key')){
function generate_key($length = 30){
return $this->generate_salt($length);
}
}
Esperando mais? Não há necessidade, esta função existe apenas para que o uso de generate_salt()
e generate_key()
não seja confundido.
Terceira e Final
Como diz esta dica, trata-se de criar hashes:
if(!function_exists('generate_hash')){
function generate_hash($salt,$password,$algo = 'sha256'){
return hash($algo,$salt.$password);
}
}
Então, para este arquivo … o $salt
parâmetro é para o salt gerado com generate_salt()
o $password
pode ser qualquer string que precise ser hash. O $algo
parâmetro precisa ser um algoritmo com suporte do servidor.
e isso é tudo. Você tem seu salt, chave e hash para serem armazenados no gerenciamento de usuários. Uma dica de acompanhamento será feita sobre como usar este arquivo em um ambiente CodeIgniter, PDO e MySQLi.
Novamente, para baixar este arquivo, visite o link do github acima.