Nja...jag kan nog inte riktigt hålla med alla föregående talare här :)
Så...
Mig veterligen har man inte ännu hittat 2 strängar som ger samma hash
Om man tänker på hur en hash är uppbyggd så finns det självklart inte oändliga antal kombinationer. Gällande just lösenord som är såpass korta så är sannolikheten väldigt väldigt liten att hashen skulle bli samma. MEN - ju större strängen är (eller hela dokumentet som vid digitala signaturer av dokument tex) så ökar chansen hela tiden.
Alltså - man har hittat massor.
Låt oss säga så här, om det tar ett år att testa igenom alla tänkbara kombinationer, då borde det ta i genomsnitt ett halvår att knäcka ett lösenord
Bara för att lösenord är hashat så innebär det inte att det tar lång tid att knäcka.
En bra "Brute Force" crackar ett 5-siffrigt lösenord på några minuter, 6-siffrigt på några timmar osv.
En bra Dictionary-lookup (finns idag hash-dictionarys innehållande upp till 15 tecken långa hashar) plockar fram det på några milli-sekunder (ja nästan iaf! :)...
Så för att återgå till grundfrågan: "är det någon skillnad ur säkerhetssynpunkt på hashade och "vanliga" lösenord?"
Det beror självklart på.
Oftast är det säkrare med hashade lösenord - men att använda hashning är ingen säkerhet i sig. Det måste göras med förståelse och på rätt sätt. Mina tips är:
1. Krydda alla lösenord med en användarspecifik nyckel
2. Krydda vidare med en system specifik nyckel som ej sparas i webb-mappen
3. Använd SHA512 som hash-algoritm
4. Följ SD3 - Secure By Design, Secure på Deployment och Secure by Default
5. Använd HTTPS
Nästa fråga blir då - vad händer om någon gör en automatiserad inloggnings attack mot dina login-sidor? Då spelar det ingen roll alls hur lösenorden är sparade i databasen - de kommer ju som tidigare nämnt ändå alltid in i klartext...Så beroende på hur känslig din data är:
6. Använd CAPTCHA för att verifiera "riktiga" användare.
Finns det risk för att någon sniffar trafiken mellan server och db?
7. Skicka ej med lösenord i databas-frågor
Osv osv...det finns ingen guide-bok för att bygga säkra applikationer eller sidor...men med kunskap kommer man långt! :)
Kan rekommendera lite läsning på:
http://www.swesecure.com
Där kan ni läsa om både SD3, Hashning, Brute Force, Kryptering, säkerhet, hacking osv!