tengo un servicio web y uno de los parámetros que nuestros clientes necesitan usar es una clave personalizada. Esta clave es un hash de SHA1Pregunta de búsqueda hash inversa
eg:
bce700635afccfd8690836f37e4b4e9cf46d9c08
entonces cuando el cliente llame a nuestro servicio web que tengo que comprobar algunas cosas:
- es un cliente activo
- es el cliente puede enviar a través de servicio web y servicio
ahora mi problema es el siguiente:
tengo una consulta:
$sql = "SELECT permission, is_active FROM clients WHERE sha1(concat(id,key)) = '" . mysql_real_escape_string($key) . "'";
¿Estoy haciendo lo correcto? o hay una mejor manera? gracias
¿Está básicamente utilizando la clave como un identificador de sesión? Si es así, podría considerar usar sesiones de PHP. Muy fácil y seguro. http://php.net/manual/en/features.sessions.php –
@JonathanM no, la clave es un sha1 de la identificación del cliente + clave aleatoria (almacenamos localmente en la tabla) y se lo damos al cliente. así que cuando llamamos a nuestro sitio, necesita usarlo, por ejemplo: http://ws.domain.com/bce700635afccfd8690836f37e4b4e9cf46d9c08/ Y el nombre de usuario y la contraseña de POST y otras variables; –
@ErinTucker: si hay una clave aleatoria incluida en el hash, ¿cómo es que su consulta solo tiene 'sha1 (id)'? – ruakh