Encriptar email en un enlace url
Publicado por carlosVallSego (12 intervenciones) el 30/12/2022 16:35:45
A ver tengo una web que cuando se registra un usuario le mando un link a su correo para que cuando lo pinche se active su cuenta. Entonces con openssl_encrypt se lo encriptó y cuando pincha en el lo recibo mediante POST. El problema viene al desencriptar, cuando recojo la cadena tipo "djphnihrfpvhpi=" y la mando a desencriptar me devuelve null. Pongo código de como sí me funciona:
Ahora imaginar que recojo por POST el correo ya encriptado y se lo asigno a una variable:
$y = "GQAGmUZjTauGYE7GF1Tz145ZZ2bD2b1TC33okzuwSIk="
Y se lo paso al mismo método de arriba pongo el código sin los métodos puesto que no los toco:
Pues me deja de funcionar. No se por que cuando asigno a una variable la cadena que se va a desencriptar me deja de funcionar. He probado con la función base64_encode y aunque funciona no lo veo seguro, ya que cuando llega el correo puedes ver el código fuente y copiar la parte encriptada copiarla y decodificarla tú mismo. Osea no lo veo nada seguro. Conocéis alguna manera más segura para pasar el correo del usuario en la url
1
2
3
4
5
6
7
8
9
10
11
12
13
function desencriptar($valor,$method,$clave,$iv){
return openssl_decrypt($valor, $method, $clave, false, $iv);
}
function encriptar($valor,$method,$clave,$iv){
return openssl_encrypt($valor, $method, $clave, false, $iv);
}
$email = "CCCCCCCCC@DDD.ES";
$y = encriptar($email, METHOD_ENCRIPT[0], CLAVE_ENCRIPT[0], IV_ENCRIPT);
$z = desencriptar($y, METHOD_ENCRIPT[0], CLAVE_ENCRIPT[0], IV_ENCRIPT);
echo $z; //funciona
Ahora imaginar que recojo por POST el correo ya encriptado y se lo asigno a una variable:
$y = "GQAGmUZjTauGYE7GF1Tz145ZZ2bD2b1TC33okzuwSIk="
Y se lo paso al mismo método de arriba pongo el código sin los métodos puesto que no los toco:
1
2
3
$y = "GQAGmUZjTauGYE7GF1Tz145ZZ2bD2b1TC33okzuwSIk=";
$z = desencriptar($y, METHOD_ENCRIPT[0], CLAVE_ENCRIPT[0], IV_ENCRIPT);
echo $z; //No funciona
Pues me deja de funcionar. No se por que cuando asigno a una variable la cadena que se va a desencriptar me deja de funcionar. He probado con la función base64_encode y aunque funciona no lo veo seguro, ya que cuando llega el correo puedes ver el código fuente y copiar la parte encriptada copiarla y decodificarla tú mismo. Osea no lo veo nada seguro. Conocéis alguna manera más segura para pasar el correo del usuario en la url
Valora esta pregunta


0