A solução encontrada era encryptar os dados... O problema é que para cryptografia, o PHP só tem funções tipo HASH, cujo conteúdo original é impossível de se recuperar (one-way).
Diante disto tive que implementar minha própria função de criptografia e descriptografia... Sendo assim, me baseei na mais forte delas e, acredite, a mais simples de ser implementada: a criptografia "One-time pad".
Obs: Apesar de ter me baseado na "One-time pad", minha função não exige que a chave tenha o mesmo tamanho que o texto a ser criptografado e nem que seja utilizada uma única vez. Cabe a você, programador, definir seu uso para a mesma.
A função e exemplo de uso vão abaixo:
/* encrypt criptografa e/ou descriptografa uma string qualquer, fornecida no parametro "frase" com uma chave qualquer executando um
XOR entre cada caractere, invertendo a sequencia e codificando em hexadecimal.
XOR entre cada caractere, invertendo a sequencia e codificando em hexadecimal.
Se $crypt = true, a função criptografa a frase fornecida. Caso false ela a descriptografa.
Exemplo de uso:
$chave = "q6w43a2sc1d6e98r6d5f6dasdfa313d525a35dsf";//Chave a ser utilizada na criptografia/descriptografia
$frase = "Teste de encriptação de frases!!!";
$crypt = encrypt($frase, $chave, true);
$decrypt = encrypt($crypt, $chave, false);
echo "Frase = ".$frase."<br>";
echo "Cript = ".$crypt."<br>";
echo "Decript = ".$decrypt."<br>";
*/
function encrypt($frase, $chave, $crypt)
{
$retorno = "";
if ($frase=='') return '';
if($crypt)
{
Exemplo de uso:
$chave = "q6w43a2sc1d6e98r6d5f6dasdfa313d525a35dsf";//Chave a ser utilizada na criptografia/descriptografia
$frase = "Teste de encriptação de frases!!!";
$crypt = encrypt($frase, $chave, true);
$decrypt = encrypt($crypt, $chave, false);
echo "Frase = ".$frase."<br>";
echo "Cript = ".$crypt."<br>";
echo "Decript = ".$decrypt."<br>";
*/
function encrypt($frase, $chave, $crypt)
{
$retorno = "";
if ($frase=='') return '';
if($crypt)
{
$string = $frase;
$i = strlen($string)-1;
$j = strlen($chave);
do
{
$retorno .= ($string{$i} ^ $chave{$i % $j});
}while ($i--);
$retorno = strrev($retorno);
$retorno = base64_encode($retorno);
}
else
{
$string = base64_decode($frase);
$i = strlen($string)-1;
$j = strlen($chave);
do
{
$retorno .= ($string{$i} ^ $chave{$i % $j});
}while ($i--);
$retorno = strrev($retorno);
}
return $retorno;
}
$i = strlen($string)-1;
$j = strlen($chave);
do
{
$retorno .= ($string{$i} ^ $chave{$i % $j});
}while ($i--);
$retorno = strrev($retorno);
$retorno = base64_encode($retorno);
}
else
{
$string = base64_decode($frase);
$i = strlen($string)-1;
$j = strlen($chave);
do
{
$retorno .= ($string{$i} ^ $chave{$i % $j});
}while ($i--);
$retorno = strrev($retorno);
}
return $retorno;
}
Muito boa função
ResponderExcluirGostei
Parabéns e obrigado por compartilhar.