<?php
// Clave secreta: deberías generar una clave segura y única
$key = 'cualquier_contraseña';
function encrypt($data, $key) {
$encryption_key = base64_decode($key);
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted = openssl_encrypt($data, 'aes-256-cbc', $encryption_key, 0, $iv);
return base64_encode($encrypted . '::' . $iv);
}
function decrypt($data, $key) {
$encryption_key = base64_decode($key);
list($encrypted_data, $iv) = explode('::', base64_decode($data), 2);
if (empty($encrypted_data) || empty($iv)) {
throw new Exception("Datos de entrada incompletos.");
}
$decrypted = openssl_decrypt($encrypted_data, 'aes-256-cbc', $encryption_key, 0, $iv);
if ($decrypted === false) {
throw new Exception("La desencriptación ha fallado.");
}
return $decrypted;
}
// Texto de prueba a encriptar
$original_text = 'el-planeta-de-los-simios';
$encrypted_text = encrypt($original_text, $key);
$decrypted = decrypt($encrypted_text , $key);
$url = "https://tusitio.com/player.php?id=" . urlencode($encrypted_text);
echo "URL encriptada: " . $url;
echo "<br><br><br><br><br>";
echo "Texo desencriptado: " . $decrypted;
?>