This idea might be more suitable as a video game app.
In order to teach people how to make secure password, I thought of a puzzle game where you are given a certain number of passwords the user currently uses and you need to guess the missing password. The more clues(passwords) you use the less points you score. So the idea is to find a logic pattern between passwords.
Difficulty could be scaled by the complexity of the encoding and by the size of the password. Passwords will be composed of chucks with a diffent coding logic and bound together using another logic. All coding techniques would be encodable by humans, so no need to have a computer to encode/decode your password.
FrankM, it's almost like what you said. The teaching part is more to open your mind to different combination of encoding algorith. The primary objective it still a game.
The mechanics is you start with a password, then you are given a website for a second password to hack it. You can try a certain amount of time (or unlimited) or ask for the answer. If you do so, it lower your score but gives you an additional password.
So if your first password is:
facebook: facebook1234
google: google1234
then Amazon will be amazon1234
Here we have 2 chunks, the first is variable to the site, the second is constant. But it you have:
facebook: facebook6
google: google7
Then amazon would be amazon1
Now the second chuck is the number of the first letter of the first chunk, where A=1, F=6, G=7. This is an example where 2 chunks are related.
Then you could encode the first chunk in leet speak like:
facebook: f4c3b00k6
google: g00gl37
amazon: 4m4z0n1
So various coding algorithm could be used for each chunk, and certain chunks can depend on other chunks.
Hope it's more clear