metodos - encriptar y desencriptar url php
Encriptar y descifrar cadena con clave PHP (4)
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo encriptas y descifras una cadena de PHP? 5 respuestas
Estoy buscando algunas funciones para cifrar y descifrar cadenas en php usando una clave especificada.
¡Gracias!
¿Has probado mcrypt ?
Supongo que se refería al cifrado de clave simétrica. mcrypt admite varios algoritmos (como AES, Tripel DES). Sin embargo, hay una trampa, no es compatible con ningún algoritmo de relleno, por lo que no sería posible recuperar la longitud original. Tienes 2 opciones para evitar este problema,
Agregue un campo de longitud en frente de su texto claro. Digamos usar los primeros 4 bytes como longitud.
Haga PKCS # 5 rellenando usted mismo. Hay ejemplos de código en esta página: http://www.php.net/manual/en/function.mcrypt-encrypt.php
Una implementación básica de openssl que he usado antes:
class MyEncryption
{
public $pubkey = ''...public key here...'';
public $privkey = ''...private key here...'';
public function encrypt($data)
{
if (openssl_public_encrypt($data, $encrypted, $this->pubkey))
$data = base64_encode($encrypted);
else
throw new Exception(''Unable to encrypt data. Perhaps it is bigger than the key size?'');
return $data;
}
public function decrypt($data)
{
if (openssl_private_decrypt(base64_decode($data), $decrypted, $this->privkey))
$data = $decrypted;
else
$data = '''';
return $data;
}
}
Debería generar el par de claves RSA. Consulte aquí para obtener información sobre cómo hacerlo. Almacenar la clave privada en el archivo en sí es una mala idea. Esto es solo un ejemplo. Idealmente, le gustaría que el usuario proporcione la clave privada en el momento de descifrado
Comience con esto: http://www.ibm.com/developerworks/opensource/library/os-php-encrypt/
Después de eso, eche un vistazo a la respuesta de Pascal MARTIN en ¿Cómo encripto una cadena en PHP?