Nein, muss man nicht. Man muss eine Hash-Funktion und eine KDF haben. Das sind zwei völlig verschiedene Dinge.
Naja, "völlig verschieden" nun auch nicht wirklich.
Man muss halt beachten, auch einen Salt für den Passwort-Hash zu nutzen.
Ein Grund mehr den Header nicht zu verschlüsseln und dort nur kryptographisch nicht relevante Daten zu speichern.
Was nicht so einfach ist, wenn man z.B. beliebige Dateien verschlüsseln will.
Alles eine Frage des Zwecks