A empresa usou recentemente extmail+postfix como solução de envio de correspondência. No sistema OA existente, os funcionários devem fazer login com suas contas legais ao fazer login no OA, mas, dessa forma, pelo menos duas contas e senhas independentes são necessárias, o que tem certo impacto na eficiência do trabalho.
Por isso, decidimos modificar o mecanismo de login existente do sistema OA para usar as mesmas informações de conta e senha do extmail, o que tem a vantagem de que os funcionários podem usá-lo para fazer login no sistema OA desde que lembrem a senha do e-mail, o que pode melhorar significativamente a eficiência do trabalho.
Depois de entender, o extmail usa o mysql para salvar informações da conta de e-mail, e a senha da tabela de caixa de correio salva as informações criptografadas, mas o extmail suporta múltiplos métodos de criptografia; para detalhes, você pode verificar as configurações do item SYS_CRYPT_TYPE no arquivo /var/www/extsuite/extman/webman.cf.
Meu sistema usa criptografia md5crypt, e o formato da senha é: $1$k0Q4EA49$XXXXXXXXXXXXXXXXXXXXXXXX. Se a senha original não estiver mais registrada na tabela de caixas de correio, como posso verificar se o usuário digitou a senha corretamente?
Após verificar repetidamente o uso das funções cripta no manual do PHP, descobri que o cripto suporta uma variedade de métodos diferentes de criptografia de hash; por favor, leia detalhadamente o uso específico das funções cripta no manual do PHP.
md5crypt possui um salt, caracterizado pelo fato de que esse salt é registrado no texto cifrado criptografado, ou seja, no símbolo $ e nos caracteres que ele contém, e o salt no resultado de criptografia acima é $1$k0Q4EA49$, então a implementação PHP do algoritmo de criptografia para a senha original é 123456 e o salt é $1$k0Q4EA49$ da seguinte forma:
<?php cripta eco ('123456', '$1$k0Q4EA49$' );
Output $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr.
Uma vez que entendemos esse princípio, podemos integrar a verificação das informações da conta da caixa de correio do Extmail em qualquer um dos nossos sistemas.
Além disso, o método de criptografia do /etc/shadow e do md5-crypt do Linux é exatamente o mesmo do princípio acima; se você quiser mudar à força a senha de uma conta para 123456 sem usar outras ferramentas, pode definir o segundo campo da conta correspondente no arquivo /etc/shadow para $1$k0Q4EA49$WcjktPPYOSyhI77n8BPPr. |