Hola amigos buenas tardes. Tengo un problema con el siguiente metodo de encriptado que uso para aplicarlo a los correos electronicos
Código PHP:
class escondido {
private static $indicador = "miclave";
public static function encri ($input) {
$output = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5(escondido::$indicador), $input, MCRYPT_MODE_ECB, md5(md5(escondido::$indicador))));
return $output;
}
public static function desencri ($input) {
$output = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(escondido::$indicador), base64_decode($input), MCRYPT_MODE_ECB, md5(md5(escondido::$indicador))), "\0");
return $output;
}
}
al momento de ingresar un correo que tenga mas de 32 caracteres me da una cadena sumamente larga.
Por ejemplo si uso el siguiente texto "
[email protected]" me da esta cadena de texto: hu/Se3oKLK/LqHs8qIrGD1tHMg6k4iP9TvZ4AhE/JHQ=
A diferencia de que si le agrego una letra mas "
[email protected]" me entrega esta cadena exageradamente larga y que me complica un esquema de validacion: 5mF1N8fG3oJ8yh95vOkJMrcZnyszqPBR3sX20CsWqoaEGaSU3J PjhJmIzNMMqYYkM0pHGS7K3GotR0kSIuD9xQ==
El proceso de validacion que aplico es el siguiente:
Código PHP:
$email = trim($_GET['email']);
$desencri = escondido::desencri($email);
$Ok = ereg("^([a-zA-Z0-9_\.-]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", $desencri);
if ($Ok) {
//mail($adminemail,'Subscribe','','From: '.$email);
Header("Location: $valido");
$sql2= "INSERT INTO emails (email,category) VALUES ('$desencri','1')";
mysql_query($sql2);
}else{
Header("Location: $invalido");
}
con el primer ejemplo hasta 32 caracteres no tengo ningun problema, pero si alguna cadena de texto o correo supera este valor ya me entrega un error. Alguien tiene alguna idea de como podria mejorar este proceso para evitar ese problema??.
Gracias y feliz fin de semana