In der sehr guten Symfony2 Doku gibt es natürlich trotzdem die eine oder andere Falltür – ein gutes Beispiel hierfür ist der so halb dokumentierte Fall, dass man User mittels Datenbank anbinden und ihre Passwörter mittels sha-512 encoden möchte.
In der entsprechenden Doku wird im User Model für die Property $password eine Stringlänge von 40 Zeichen angegeben. Das passt auch ganz gut für MD5 oder sha1, aber eben nicht für sha-512. Die Folge: man bekommt nur ein läppisches “Bad Credentials” präsentiert, weil das Passwort in der DB abgeschnitten wird.
Die Zeichenlänge für sha-512 sollte aber deutlich länger sein – 128 ist der sinnvolle Wert. Wer das warum wissen möchte:
512 bits / 8 bits pro byte * 2 hex digits pro byte = 128 hex digits