Boa noite a todos.

O caso é o seguinte:
Estou a criar um sistema web em PHP para administrar grupos, usuários e controle de Internet com squid, como o programador PHP não é muito experiente eu estou fazendo tudo em bash por baixo de forma que ele só chame meus scripts e esses façam todo o trabalho sujo.
Uma função que não estou conseguindo implementar é para que o próprio usuário consiga trocar sua senha entrando com a atual.
No meu squid as senhas são salvas em um arquivo gerado pelo htpasswd, eu preciso de uma forma de verificar a senha dos usuários desse arquivo, ou seja, preciso de um comando onde eu passe uma senha, nome de usuário e o arquivo de senhas a ser testado e ele me diga se a senha confere ou não.
Tentei utilizar o próprio htpasswd com a opção -n para que ele mostre a senha criptografada no terminal, porem para uma mesma senha ele gera vários hashs diferentes, inviabilizando a comparação dessa forma.

Alguém pode me dar uma ajuda com isso?
Desde já agradeço a todos!