Ik heb wel eens zoiets meegemaakt bij het gebruik van UNIX encrypted passwords in m'n CGI-scripts (geen idee of UNIX-encryptie hier ook van toepassing is, maar dat zou wel wat verklaren). Daarbij wordt een opgeslagen password alleen in z'n gecodeerde vorm opgeslagen, en kan
niet meer gedecodeerd worden. Als iemand zijn password invult ter controle, wordt het password ook gecodeerd, en wordt dan in zijn gecodeerde vorm vergeleken met het opgeslagen gecodeerde password.

Dit betekent dus dat je password niet te achterhalen valt door wie dan ook. Het nadeel hiervan is dat het dus eveneens niet naar je toe gemaild kan worden, omdat het alleen in gecodeerde vorm bekend is.

Daarom wordt er dus een nieuw random password naar de eigenaar van de account gestuurd, die deze daarna naar believen kan aanpassen.
De reden WAAROM het password is veranderd kan meerdere oorzaken hebben, maar één daarvan is dat de UNIX encryptie resultaten compleet verschillen per server, en ook nog eens afhankelijk zijn van een 'seed' (een willekeurige string die de encryptie-methode randomized).

Mocht er iets aan de server veranderd zijn waardoor de encryptie resultaten anders zijn geworden, dan komen de ingevoerde gecodeerde passwords dus natuurlijk niet meer overeen met de opgeslagen gecodeerde passwords, waardoor je geen toegang meer hebt tot je account.
Maar als je dan daarna jezelf een nieuw password laat toesturen, werkt deze natuurlijk wel, omdat deze dan ter plekke gecodeerd wordt (
nadat de wijzigingen zijn doorgevoerd).
Dat is me al vaker overkomen, en zeker niet handig bij databases met duizenden gebruikers...