don't just pick the first 20 characters, but some place else.
don't always insert a capital on the 4th and ! on the 8th position but vary the position somehow and instead of the '!' use one these characters: `~!@#$%^*()_+-=
Restriction: the generation for one combination of domain/salt/uid/sequencenumber has to always result in the same GeneratedPassword
To improve:
Restriction: the generation for one combination of domain/salt/uid/sequencenumber has to always result in the same GeneratedPassword