As senhas são (se a implementação for boa) armazenadas como um código hash em seu sistema. Além disso, eles devem ser salgados para esconder senhas fracas (no caso de alguém entender o banco de dados). Você pode ler sobre sal e armazenamento de senha aqui: http://en.wikipedia.org/wiki/Salt_%28cryptography%29
Se você ler o artigo que você vai entender, que feito certo a senha em si nunca será armazenada. O que é armazenado é o código hash da senha + sal e o próprio sal. O que você poderia fazer para testar seu sistema em busca de senhas fracas é a mesma coisa que os hackers fazem: usando força bruta. Em seu caso especial, você poderia (se um sal é usado para todas as senhas) usar uma tabela com senhas + sal e o código hash gerado. Isso diminuirá o tempo de computação rapidamente, já que você só terá que comparar os códigos hash (Isso só será verdadeiro se você usar o banco de dados mais de uma vez). Mas, novamente, isso só é possível se a implementação não for a melhor solução possível.
Se não tiver proibido senhas fracas e você quiser que seus usuários usem senhas fortes, a maneira mais fácil (apenas) de conseguir isso é forçar os usuários na geração de senha ou verificar sua senha no login, contanto que a senha ainda esteja armazenada limpa na memória. . Assim, você só pode verificar facilmente senhas fortes para usuários "usando" o computador. Se você quiser verificar as senhas de todos os usuários, sua opção é a força bruta.
Se você não tiver feito isso no passado, a solução seria redefinir TODAS as senhas com senhas fortes geradas aleatoriamente e entregá-las aos seus usuários. No próximo login você pode forçar seus usuários a usar senhas fortes.
John the Ripper é um ataque de força bruta. Tem um dicionário massivo e códigos hash armazenados e, em seguida, executa isso contra suas senhas. Você sempre pode executar isso, mas deve ser um desperdício de tempo de CPU, pois você deve impor senhas fortes.