I've been meaning to file this one for years (pretty much since I first encountered cracklib). The current password strength mechanism needs improvement. It currently discourages some forms of good passwords while encouraging some forms of bad passwords.
When analyzing passwords, among other checks, cracklib will remove all non-alpha characters and see if it has a word. The problem with this is it doesn't provide a very accurate assessment of the password. Take this example of a password:
In this case, the word 'hello' is intersperced with various special characters making for a very strong password. However, cracklib will report the password as weak. It's an example where removing the characters to perform the check is easy, however in reality a brute force attack would actually be very difficult.
On the flip side, cracklib is quick to judge weak passwords in the form of leet speak as strong, despite the fact that leet speak crack dictionaries are as easy to implement as standard latin dictionaries. For example 'h3ll0w0r1d' would be deemed strong even though it is far more easily guessed than the previous example.
Please email dbialac_at_yahoo_com if you have any questions.