Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17660
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Tornar a senha mais segura com o base64_encode PHP

06-03-2015 05:10

Quando precisamos criptografar uma senha, e depois precisamos recuperar a mesma, uma das soluções é a função base64_encode para criptografar e base64_decode para descriptografar a senha.

Sendo que se você passar o base64_encode uma vez sobre a palavra a ser criptografada, você terá a mesma criptografada, mas, você pode passar o base64_encode várias vezes sobre uma palavra, obtendo uma senha mais segura.

Eu montei um exemplo bem simples explicando esse processo de passar a palavra várias vezes pela função base64_encode

<?php $texto = "abcd"; $uma = base64_encode($texto); // PASSADO UMA VEZ $duas = base64_encode(base64_encode($texto)); // PASSADO DUAS VEZES echo base64_encode($texto)."<br />"; // EXIBINDO UMA PASSADA echo base64_encode(base64_encode($texto))."<br />"; // EXIBINDO DUAS PASSADAS echo base64_decode($uma)."<br />"; // RECUPERANDO UMA PASSADA echo base64_decode(base64_decode($duas))."<br />"; // RECUPERANDO DUAS PASSADAS ?>

Uma coisa que deve ser observada é que quanto maior o texto a ser criptografado e quanto mais vezes passar a função maior é o resultado final.

Portanto, se você pretende armazenar esses valores criptografados no banco de dados, limite a quantidade de caracteres para o usuário, e conte a quantidade de caracteres do resultado final para adaptar a coluna do banco de dados de acordo.

Agora nesse exemplo, vou mostrar por exemplo como fica passando a função base64_encode 5 vezes sobre uma palavra

<?php $texto = "abcd"; echo base64_encode(base64_encode(base64_encode(base64_encode(base64_encode($texto)))))."<br />"; // EXIBINDO CINCO PASSADAS $cinco = base64_encode(base64_encode(base64_encode(base64_encode(base64_encode($texto)))))."<br />"; // ARMAZENANDO CINCO PASSADAS echo base64_decode(base64_decode(base64_decode(base64_decode(base64_decode($cinco)))))."<br />"; // RECUPERANDO CINCO PASSADAS ?>

O resultado será

VmpGYWExTXlSbk5qUlVwUlZrUkJPUT09
abcd


Se for fazer esse processo manualmente, ou seja, escolher quantas vezes for passar a palavra pelo base64_encode vai dar muito trabalho. Então criei essa função abaixo para facilitar o processo de uso.

<?php function criptografar($p,$vezes,$a) { $palavra = $p; for($i = 0; $i < $vezes; $i++) { if($a=="c") $palavra = base64_encode($palavra); if($a=="d") $palavra = base64_decode($palavra); } return $palavra; } //            TEXTO A SER CRIPTOGRAFADO, VEZES, c = CRIPTOGRAFAR | d = DECRIPTOGRAFAR echo criptografar("abcd", 5, "c")."<br />"; //            TEXTO A SER DESCRIPTOGRAFADO, VEZES, c = CRIPTOGRAFAR | d = DECRIPTOGRAFAR echo criptografar("VmpGYWExTXlSbk5qUlVwUlZrUkJPUT09", 5, "d")."<br />"; ?>

0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado