funciona - md5 php
¿Por qué md5(''240610708'') es igual a md5(''QNKCDZO'')? (2)
Debe utilizar el operador de comparación sensible al tipo ===
.
Los hashes evalúan hasta 0e462097431906509019562988736854
y 0e830400451993494058024219903391
, respectivamente. Cuando usa ==
, cada uno se convierte en una representación numérica debido a la e
(notación científica), por lo que cada uno se convierte en 0
. 0 == 0
es cierto.
Por otro lado, esto:
md5(''240610708'') === md5(''QNKCDZO'')
devuelve false
porque los valores de cadena son diferentes. ===
fuerza la comparación sensible al tipo.
Esta pregunta ya tiene una respuesta aquí:
var_dump(md5(''240610708'') == md5(''QNKCDZO''));
Salida:
bool(true)
Ejemplo: http://3v4l.org/2vrMi
md5(''240610708'')
es 0e462097431906509019562988736854
.
md5(''QNKCDZO'')
es 0e830400451993494058024219903391
.
Ambas son cadenas de formato de número flotante ( cadenas numéricas ), y si usa ==
en php, cuando compara un número con una cadena o la comparación involucra cadenas numéricas, entonces cada cadena se convierte en un número y la comparación se realiza numéricamente.
Ambas cadenas se convierten a 0
cuando se comparan con ==
, si desea compararlas como una cadena, recuerde usar ===
( comparación estricta ) en su lugar.