Jednokrotny SHA-256 nie nadaje się do dobrego kodowania haseł, szczególnie bez soli. Jest zbyt narażony na bruteforce, na GPU czas hashowania jest porażający. Oczywiście ilość kodowań, czy opcje bcrypta/scrypta trzeba dostosować, żeby nie dawać za dużego opóźnienia, ale im dłużej będzie zajmowało kodowanie haseł, tym bruteforce będzie trudniejszy. Nawet jeżeli (eksperyment myślowy, gdyby tak było, to pewnie SHA-256 byłby uznawany za zepsuty) takie wielokrotne hashowanie by zmniejszyło entropie bitów dwukrotnie (do 128), to ilu użytkowników używa hasła o takiej entropii. Szukanie kolizji w tym wypadku i tak jest zdecydowanie trudniejsze niż ataki słownikowe. Ludzie używają prostych haseł i powtarzają je na różnych stronach, nie powinno się atakującemu udostępniać haseł użytkowników praktycznie na tacy.
Funkcje hashujące są zaprojektowane do np. weryfikowania plików. Mają być szybkie i odporne na kolizje. Hashowanie haseł powinno być jak najwolniejsze (dopóki jest to użyteczne). Przykładowo do kodowania haseł w PHP powinno się używać http://www.php.net/manual/en/function.crypt.php (oczywiście nie z DESem).
Edit: Tutaj trochę więcej informacji o kodowaniu haseł http://tools.ietf.org/html/rfc2898 . Ten dokument jest sprzed 12 lat, więc trzeba wziąć pod uwagę zmianę szybkości obliczeń i używane algorytmy (np. MD5).
Edit2: A tutaj mały poradnik jak łamać hasła (znaleziony na Freenecie, odpowiednio skrócony żeby nie dawał za dużo informacji script kiddies). http://pastebin.com/VAbB2PiQ