Pular para o conteúdo principal

Criptografia de senha para Moodle 2.5

Olá Pessoal, tudo bom?
Hoje vou postar como fazer para criptografar e comparar a senha passada pelo usuário do Moodle, com a senha que está armazenada no banco de dados. Isso é importante para realizar, por exemplo, uma autenticação em outro site, utilizando o usuário e senha do Moodle, autenticar em seu Moodle a partir de outro site e assim por diante. É algo muito útil na lida diária do Moodle.
IMPORTANTE! Fiz o teste no ambiente Moodle versão 2.5 utilizando banco de dados MySQL.
VAMOS LÁ!
Nessa versão 2.5 o Moodle NÃO utilizada mais uma hash MD5 simples, como nas versões anteriores. O Moodle faz uso da função crypt do PHP. Sabendo disso basta você comparar as duas senhas. A senha passada pelo usuário e a senha do banco de dados. Veja como ficou:

//Senha passada pelo usuário via POST/formulário
$senhaUsuario = "senhaPassadaPeloUsuario";

//Senha do usuário armazenada no banco de dados
$senhaDoBanco = "senhaArmazenadaNoBanco"; 

//Faz a criptografia através da função crypt
$senhaHash = crypt($senhaUsuario, $senhaDoBanco);

if(strcmp($senhaHash, $senhaDoBanco) === 0 ){

    echo "CORRETA";
}

else{

    echo "INCORRETA";
}


A partir disso, você pode escolher como irá tratar as informações. É isso aí pessoal! Se gostou, divulgue o POST, comente e contribua. Se não gostou, comente também e vamos juntos melhorar.

Abraço a todos!

Comentários

Postagens mais visitadas deste blog

Resolvendo problema na instalação do Moodle 3.1 [mysql_full_unicode_support]

Fala Galera! Recentemente fui instalar a versão do 3.1 do Moodle e me deparei com a seguinte mensagem de erro da instalação: Ou seja, a mensagem está falando que o seu banco de dados foi criado em um formato de arquivos não suportado. Na maioria das vezes a collaction criada automaticamente é LATIN1 e ele está pedindo UTF-8. Para resolver esse problema basta rodar o seguinte SQL em seu banco de dados MySQL. ALTER SCHEMA `NOME_DO_SEU_BANCO`  DEFAULT CHARACTER SET utf8  DEFAULT COLLATE utf8_general_ci; Feito isso prossiga normalmente com sua instalação do Moodle 3.1 e desfrute das novidades que essa versão traz. Espero que tenha gostado e até mais.

Tela personalizada de login do Moodle

As vezes queremos ou precisamos sair do tradicional e necessitamos fazer uma tela de login personalizada no Moodle. Em uma dessas necessidades que surgiu esse POST em que vou explicar como fiz uma tela personalidade para utilizar no Moodle. Lembrando sempre que existem inúmeras formas de se fazer a mesma coisa na programação, essa foi a forma que eu encontrei. Vamos lá: Primeiramente vamos contextualizar. Por padrão a tela de login do Moodle é como na imagem abaixo, ou ainda pode estar no index da página em um bloco de acesso.  (Clique na imagem para ampliar) 1º Criando o arquivo login.php Criei o arquivo PHP com os campos de usuário e senha e dei a ele o nome de login.php . Coloquei esse arquivo na pasta raiz do Moodle.  A grande questão desse arquivo é no parâmetro action do formulário. Ele aponta para o caminho login/index.php " que é o caminho de login tradicional do Moodle. Veja na imagem abaixo: 2º Usando o método isloggedin(); do Moodle E...

[PERGUNTAS E RESPOSTAS] Como saber o número total de alunos cadastrados no Moodle através de uma consulta SQL?

Olá Pessoal, Tudo Bom! Hoje vamos fazer um POST com uma pergunta do Rodrigo nos comentários aqui do blog, que foi a seguinte: "Como saber o numero total de alunos cadastrados no Moodle através de uma consulta no Mysql?" Vamos entender primeiramente que o Moodle define suas permissões por contexto. Existem as permissões globais de administração e existem as permissões contextuais da sala de aula. Por exemplo: Um usuário em um determinado curso pode ser aluno e em outro determinado curso pode ser professor. Ou seja, creio que o mais prudente para se saber o número de fato de alunos seja saber o número de alunos por curso. Para isso fiz um post com o tema:  Relatório de alunos matriculados por curso no Moodle em SQL Diante disso, podemos saber todos os usuários que possuem o papel de aluno, através do SQL abaixo. SELECT count(DISTINCT(mdl_user.id)) as TOTAL  FROM mdl_role_assignments  JOIN mdl_user ON mdl_user.id = mdl_role_assignments.userid  JOIN mdl_...