Et par ting her:
-
Du krypterer det ikke rigtig, du hash det. Nem ting for nybegyndere at forvirre, men ville bare have det af vejen.
-
Brug ikke MD5, det er bare ikke en særlig sikker hash. Brug en af SHA-varianterne i stedet, hvis det er muligt.
-
Du skal ikke bare hash kodeordet, du vil også gerne "salte" det. Grundlæggende involverer dette at tilføje en tilfældig streng til adgangskoden, før du hash den, og gemme den tilfældige streng et sted, hvor du kan hente den senere (så du kan validere hashen, når brugeren indtaster deres adgangskode). Dette hjælper med at forhindre angreb fra forudberegnet ordbog.
Med hensyn til at generere adgangskoden, tror jeg, du er på rette vej - jeg ville bare generere den, når de opretter deres konto, e-maile den til dem, derefter hash den og gemme den hash-kodede (og et tilfældigt salt) på brugerregistreringen i DB.