Možná vlastně máte pravdu, protože jiní vývojáři hesla solí tak, jak jste popsal vy - sůl je veřejně známá nebo je uložená v DB hned vedle heshe.
Já jsem se pro svůj způsob solení rozhodl již před delší dobou a na to, jak se píše, že se to dá dělat - veřejná sůl - jsem zapomněl.
Já to dělám tak, že mám sůl pro každého stejnou, ale tajnou (to je právě to Vámi zmiňované zabezpečení skrz utajaní). Aby uživatelé se stejným heslem neměli stejný hash používám přibližně toto skládání (také tajné):
sůl1 + heslo + sůl2 email + sůl3 + ještě nějaký údal o uživateli z db + sůl4
a z tohoto celého řetězce udělám hash.
Tím vlastně aplikuji to, co vy popisujete v článku. Předpokládal jsem, že se to tak dělá běžně, proto mi nešlo do hlavy, co to tady píšete.
Nevím kdo jste a jaké je vaše odbornost, ale zdá se mi, že moc nevíte, o čem píšete.
"... To útočník zjistí obvykle poměrně snadno, protože zná nejen vstup (své heslo a sůl) a výstup (hash)..."
Jaktože podle Vás útočník zná sůl? Nezná! Sůl je uložena ve zdrojovém kódu stránky a ten, jak píšete níže, útočník nezískal. Pokud je sůl dostatečně dlouhá, tak útočník se znalostí svého hesla a heshe (sůl + heslo) není schopen v rozumném čase sůl zjistit.