Man nennt diesen Angriff, "Known Plaintext Attack".
Kann es sein, dass du mich für total dumm hältst? So komm ich mir zumindest gerade vor.
Der Header muss ja nicht aus fixen Daten bestehen. Denn das hinzufügen des Passwortes als Hash bringt eben weitere Probleme mit sich, wie himitsu bereits sagte. Und man muss eben zwei verschiedene Key derivation functions haben - einmal für die Verschlüsselung und einmal für den Passwort-Hash ...
Und wie gesagt, kann es ja gewollt sein, dass man erst am Ende der Entschlüsselung merkt, dass etwas nicht stimmt - das verlangsamt auf natürliche Weise Bruteforce-Angriffe (sofern natürlich kein known plaintext am Anfang vorliegt. Aber so ziemlich jedes komplexere Format als eine Textdatei hat einen Header mit einem oft fixen Wert - der nennt sich "magic number"
).