Encriptacion de password moodle

Encriptacion de password moodle

de Fespinoza ... -
Número de respuestas: 8

Hola a todos, estoy trabajando en iniciar el uso moodle como aula virtual en la institución educacional donde trabajo.

Actualmente se tiene un sistema de registro de alumnos y apoderados, que funciona bastante bien, pero solo realiza labores administrativas, nada referente a cursos, este sistema tiene una base de datos con todos los alumnos, mi idea es tomar esos alumnos y crearlos como usuarios en moodle.

Se que me recomendaran crear un webservice pero por razones de tiempo no puedo realizarlo, entonces la forma mas fácil que se me ocurre, es que haga un proceso que cuando se ingrese un alumno en la base de datos del actual sistema, este sistema también lo inserte en la base de datos de moodle, ya que las dos bases de datos se encuentran en el mismo servidor, me funciono el hacer esto, pero me surgió un problema, ya que no se como moodle encripta sus contraseñas no puedo crearle una, entonces el alumno se ve y se pueden hacer acciones con el como matricularlo en un curso, pero no se puede logear.

Estuve revisando el código para ver donde tiene su algoritmo de encriptacion, creo tenerlo identificado, pero no logro entender bien como lo hace.

Favor si alguien sabe como se realiza esta acción, favor compartirla se lo agradeceria mucho.

Mi version de moodle es 2.6.4+ (Build: 20140821)

Saludos!

Promedio de valoraciones: -
En respuesta a Fespinoza ...

Re: Encriptacion de password moodle

de Eric Romero Martínez -

Estimado Fesponiza

En este post puedes encontrar la información que deseas.

https://moodle.org/mod/forum/discuss.php?d=232664


Saludos cordiales

En respuesta a Eric Romero Martínez

Re: Encriptacion de password moodle

de Fespinoza ... -

Muchas gracias por tu respuesta, gracias a tu ayuda logre dar con la solución y pude generar password que moodle 2.6 reconoce como validas.

Para lograr esto fui al archivo \lib\password_compat\lib\password.php, y entendí como lo hace, el método password_hash que se encuentra implementado en este archivo es el que generar la password, así que lo copie, también son importantes las definiciones define('PASSWORD_BCRYPT', 1); y define('PASSWORD_DEFAULT', PASSWORD_BCRYPT); , el resto de los métodos implementados para mi caso no fueron necesarios. 

Luego puse todo en el archivo php, y lo llame de esta forma : 

$options = array();

echo password_hash('123456',1,$options);  // muestro password resultante.

Con esto me genero una password valida para moodle 2.6.

Adjunto el archivo "clave.php" donde se muestra lo descrito, este lo pueden copiar donde sea necesario en sus respectivos sistemas.


Gracias por todo.

En respuesta a Fespinoza ...

Re: Encriptacion de password moodle

de Eric Romero Martínez -

Muchas gracias por compartir tu experiencia, yo en lo personal tengo un sistema propio que hace consultas a la BD de Moodle para autenticar a los usuarios y obtener información del mismo, de esta manera manejo una sola clave de acceso para Moodle como para mi sistema propio, "descubrir" la forma en que moodle hacia el cifrado para 2.5 en adelante fue un verdadero dolor de cabeza pero cuando lo entendi fue realmente gratificante.

Con esta información que compartes también es muy útil (y nuevo para mi) y esperemos que le sirva de gran ayuda a otros colegas que estén buscando hacer cosas similares.

Saludos

En respuesta a Eric Romero Martínez

Re: Encriptacion de password moodle

de Fespinoza ... -
Pues de nada, es un placer ayudar a otros que tienen o tendrán la misma interrogante.

Ademas que unificar sistemas es lo mejor, sobre todo en el ambiente estudiantil, ya que cuando estaba en la universidad tenia 3 claves de 3 sistemas que se tenia, uno era intranet, otro para cursos de la carrera y otra para cursos de ciencias, y realmente siempre me confundía porque encima de todo tenían que ser distintas.

Ah y olvide mencionar algo, esta función es equivalente a usar  password_hash de php 5.5, por lo que para quienes tienen esta versión de php no es necesaria. En mi caso lo era ya que uso php 5.4.14, y no existe esta función.

Saludos!

En respuesta a Eric Romero Martínez

Re: Encriptacion de password moodle

de Virgilio de Valle -

Que tal Eric!,

En los Moodle anteriores era muy sencillo, tengo una app que se tiene que logear y lo hacia por medio de md5(pass+semilla)==pass_de_la_DB y era todo.

Pero ya ese metodo al actualizar el moodle, no me funciono, el encriptado es otro segun estoy leyendo (bcrypt).

No logro aun dar con la solución de poder hacer un login desde una app propia, por lo del pass.

Te agradeceria mucho si pudieras orientarme!!!

De antemano Gracias!

En respuesta a Eric Romero Martínez

Re: Encriptacion de password moodle

de Néstor Ovallos Cañas -

Estimado Eric, podrías explicar o dar más detalles sobre la forma en que Moodle realiza este cifrado?
Justo estoy intentando hacer lo que tu ya has logrado. Un sistema propio que consulta la BD de Moodle para autentificar usuarios y obtener información.

Agradezco inmensamente tu orientación al respecto.