em especial as senhas.Muito guardam senhas sem nenhuma criptografia,
e isso pode acarretar em vários problemas.
Outras pessoas usam hashes(md5,sha1, etc) para codificar os dados,
mas isso tem o inconveniente de não poder descriptografar, e isso é um recurso
útil pois assim é possivel implementar o recurso "recuperar senha" por exemplo.
Uma outra utilidade de criptografia seria a passagem de dados pela URL.
por ex:
ao inves de usar
www.seusite.com.br/pagina.php?p=243&art=vr&lc=ptbr
voce poderia usar
www.seusite.com.br/pagina.php?xWsI0TvEEBlrGkMH6VzSHBnvezukVAY5hFTX
assim ficaria um pouco mais dificil usar XSS, injections, etc.
ja que em caso de qualquer modificação na URL os dados não poderão
serem decodifidados, e assim ficaria facil a detecção de tentativa de adulteração e
interrupção do script;
Para facilitar as coisas, criei para uso próprio uma classe simples porém útil
com ela é possivel (de)codificar strings usando o módulo mcrypt do PHP.
Resolvi compartilha-la pois pode ajudar muito programadores iniciantes.
exemplo de uso
para codificar
echo encript::encode("meu cartão de crédito é 123456789abcdef");
resulta em:
88GiwDFuRg4yIYzjDYIMZl89SF+xldyisoU9NFgIqNh3mm3qFwNuMZOv8MBwz7/w
para decodificar
echo encript::decode("uaQAoJPXKjKtgDkzJFmug6u2yne7QXe2mPVqhTj43V+9YP0hL2PgJ2C4LFUcFh/hiVefnj2vLkU=");
<?php
abstract class encript{
const key="a senha secreta é 12345"; // chave da criptografia max 24 caracteres
static public function encode($str){
$input = $str;
$rnd=rand(10000000,99999999);
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
mcrypt_generic_init($td, self::key, $rnd);
$encrypted_data = mcrypt_generic($td, $input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return base64_encode($encrypted_data);
}
static public function decode($str){
$input = base64_decode($str);
return mcrypt_decrypt ( "tripledes" , self::key , $input , "ecb" );
}
} // fim classe
?>