Mě přijde teda zmatený ten tvůj popis. V tvém přístupu sice útočník odposlechnuvší komunikací ani majitel serveru (nebo útočník databázi serveru ukradnuvší) neznají heslo v té formě, jak ho zadává uživatel, to je pravda. Ale znají hash a ten jim pro přihlášení stačí - stačí modifikovat ten klientský JS aby posílal přímo, to co se zadá do pole "heslo" (vypnou hashování) a pak zadají do pole hesla odchycený/získaný hash a voilá, jsou tam i bez znalosti hesla,.
Případně je možno udělat variantu na OTP, kdy server má heslo v plaintextu, při pokusu o přihlášení pošle klientovi salt (pokaždé jiný) a požaduje po něm, aby zahashoval heslo s tímhle saltem. Pak odchycení komunikace je útočníkovi k ničemu, ale je nutné mít to heslo na serveru uložené => taky nic moc.