SHA to mocniejszy algorytm po prostu, mdp dzięki kartom graficznym można łamać metodą brutal force, jak wycieknie baza z hasłami do szyfrujesz różne kombinacje hasła i porównujesz z bazą, w końcu trafisz na taką która pasuje. I nie koniecznie to musi być nawet to hasło, które podał użytkownik. Najlepiej dodawać do haseł jakiś stały string, dzięki temu wyciek samej bazy uniemożliwia złamanie hasła, bo łamacz nie będzie wiedział, że system coś dodaje. Jednak to nie pomoże w przypadku wycieku kodu.
SHA ma dużo dłuższe klucze, przykład SHA 512
13f5d08c8dc2122249b3bb53ca05fe915bcf3643ba64fafbf01c0272054af59a3d5c4e320199396e21c6556cafb60cd4384b5278005d0d3b75332098af7114d8
a to md5
59b466fd93164953e56bdd1358dc0044
a używanie jest podobne piszesz hash("sha512", $text); ja tak uzyskuje klucz, jak chcesz krótszy klucz to możesz użyć funkcji sha1($text);
f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
Ale generalnie jak piszesz jakąś aplikację w zasadzie od podstaw to ja Ci radzę zainteresować się framewokiem, początkowo spowolni prace, bo trzeba się go nauczyć, ale kod jest łatwiejszy w utrzymaniu.Czasem można skożystać z gotowych modułów, na przykład ja kiedyś użyłem modułu zarządzania uprawnieniami. Teraz będę pisał swój, pod własne potrzeby, ale wtedy oszczędził mi sporo pracy.
Ja korzystam z Yii, ten filmik pokaże Ci jak bardzo usprawniają one pracę
http://www.yiiframework.com/screencast/blog/