Holaa! (tanto tiempo). Estoy desarrollando un programa muy simple que simule ser un "Sistema de Contabilidad", pero que sea perfectamente funcional. Al empezar con la parte de usuarios y contraseñas, me surgio una duda: quiero llamar a la funcion md5() de PHP para comprobar que el usuario y contraseña sean validos. Estos datos estan guardados en forma de dos hash md5 en dos archivos y quiero que cuando se metan los datos del login, estos se pasen a dos hash md5 para comprobar si son iguales a los que estan en los archivos.
Alguien conoce alguna forma de ejecutar PHP desde C o de codificar un string en md5 desde C de forma sencilla?
Gracias.
No conseguiste en google alguna librería para hacer md5 en c?
son muy comunes y simples
Aunque lo correcto es tirar por lo que ha dicho `engel lex` (buscar una librería), si estás en linux al menos, siempre puedes hacer una llamada a `system` con un script PHP utilizando el `she-bang`:
#!/usr/bin/php + opciones que sean necesarias.
// tus llamadas a md5()
// guardar el valor en un fichero
Y luego tu código C++:
system("./script-php");
// Leemos el fichero escrito por el script
O también podrías crear un fichero temporal, y en la llamada a `system` redirigir la salida estándar de dicho script php a dicho fichero temporal. También puedes buscar algún wrapper de PHP para C++. O utilizar una librería para lanzar un proceso en vez de llamar a `system` (para hacer a la aplicación independiente de la plataforma), y utilizar sockets para comunicar PHP con C.
En fin... no se me ocurre nada más.
Graciaaas! Con respecto a lo de engel lex, busque, pero, comos siempre, me quedo la duda si esa era la forma mas "correcta" de hacerlo, ya que los resultados variaban bastante.
Voy a intentar lo de "system", me gustaria que el programa sea portable, pero si no puedo usar las funciones de md5 de C, no me va a quedar mas remedio.
Gracias por la ayuda.
Puedes usar la librería openssl: http://stackoverflow.com/a/10324904/1794803
Creo que estas complicando mucho algo que es demasiado simple, solo para obtener un MD5, pq tienes que acudir a PHP? :-\
Dependiendo de si estas en Linux/Windows cualquiera de estas te serviria:
-> Usando una libreria (https://bobobobo.wordpress.com/2010/10/17/md5-c-implementation/) <-
-> Usando la CryptoAPI (https://msdn.microsoft.com/en-us/library/windows/desktop/aa382380(v=vs.85).aspx) <-
Aunque si lo que quieres es portabilidad te recomiendo irte por la primera variante ::)
Gracias por responder. Por lo que veo, usar una libreria seria lo mas practico. A mi se me habia ocurrido usar PHP, porque me acorde de su funcion md5() cuando empece con la parte de usuarios y contraseñas.
Ahora toca buscar una libreria de md5 simple, ya que solo quiero convertir un string y nada mas (hay librerias que lo dividen en varias funciones distintas).
Gracias por la ayuda, por lo que a mi respecta, el tema esta solucionado: ya se llamar a PHP desde C y se que tengo que buscar librerias.
Gracias!