Hallo,
ich geb mal meinen Senf dazu.
1) Eine Passwortänderung macht nur dann Sinn, wenn das Passwort kompromittiert ist.
Hier gibt es einen schönen Artikel, der dir das auf Heise erklärt.
Der ändere dein Passwort Tag ist gut gemeinter Unsinn
2) Man erhöht bei einem sicheren Passwort nicht die Sicherheit, wenn man es regelmäßig wechselt. Im Gegenteil, da Nutzer dazu neigen, immer einfachere Passwörter zu nehmen und diese sich dann an den Monitor heften. Weil wer kann sich schon Passwörter merken, wenn man die Wichtigen alle paar Tage ändern muss?
3) Die Sicherheit eines Passworts wird nur durch seine Länge und durch die Anzahl möglicher Zeichen bestimmt. Hier gilt natürlich je Länger und je mehr mögliche Zeichen um so besser. Hier geht es um die Entropie des Passworts. Es wird empfohlen für starke Passwörter eine Mindestlänge von 20 Zeichen zu nutzen.
Für die Leute die es interessiert, gibt es ein paar nette Folien von der Uni Weimar zum Thema
Passwörter.
4) Passwörter sollte man nur im Notfall im Klartext speichern, wenn
keine andere Möglichkeit besteht. Wir ja auch in PHP Skripten gemacht, damit diese sich z.B. an einer Datenbank anmelden können.
Für fremde Nutzerpasswörter gibt es sonst sowas:
Bussgeld
5) Wenn sich ein Benutzer an einem Webserver / Mailserver anmelden muss, besteht auf der Serverseite nicht die Notwendigkeit Passwörter im Klartext zu speicher. Hier kann der Dienstleister auch haftbar gemacht werden, da man ihm grobe Fahrlässigkeit vorwerfen kann. (siehe Link oben)
Aber nun zur eigentlichen Frage:
Man könnte in einem Array die benutzen Buchstaben ohne Angabe von Häufigkeit und Reihenfolge speichern, so könnte man die Differenz erkennen. Das macht die Sache aber auch nicht sicherer. Da ein Angreifer der Zugriff auf diesen Vektor bekommt das Passwort leicht erraten kann.
Sollte es sich um einen externen Web-, Mailserver handeln, kannst du mich gerne anschreiben, wenn ihr einen Providerwechsel anstreben wollt.