Ey, ik ben bezig met een loginsysteem dus ik zal na te denken over hoe het wachtwoord op te slaan.
Ik zat zelf te denken om het wachtwoord eerst door sha1 te gooien zodat ik een string van 40 tekens krijg en daarna door md5 die het weer verkleint naar 32. Maar als iemand nou die hash krijgt is het toch onmogelijk om het wachtwoord eruit te halen, omdat je nooit die weer de orginele 40 tekens kan terug krijgen. Om een wachtwoord te controleren hoeft dat ook niet dus zou dit veilig genoeg zijn en heb ik het ook zo goed gedacht of zit er ergens een fout in mijn denkvermogen?
Graag zou ik jullie mening over het bovenstaande hebben en/of hoe jullie wachtwoorden wegschrijven..
Nee maar ik wil maar zeggen dat het nutteloos is wat jij gaat doen.
Als je een md5 hash maakt, gaat er data verloren en dus ben je niet meer in staat je wachtwoord doormiddel van de hash terug te krijgen.
Als men wil Bruteforcen ect... dan kan je zoals ik aangaf 3 pogingen inbouwen zal veel veiliger zijn
[edit]
dan is er nog iets de hacker kan niet weten hoe jij je wachtwoorden encrypt (md5/sha1/eigen gemaakte...), weet dus niet uit hoeveel tekens deze bestaat en moet dus ook gissen.
[/edit]
Ik snap Ultimatum's manier van denken wel.
Als een hacker je hashes ziet en opmerkt dat die 32-tekens lang zijn, zal hij ervan uit gaan dat je md5() gebruikt, daar dit de meest gebruikte is.
Met Rainbow-tabellen kan hij gaan matchen welk wachtwoord er bij een hash hoort. Lang niet voor alle, maar wel voor een aantal.
Als je dus eerst bijvoorbeeld Md5, dan Sha1 en dan weer Md5 doet, kan hij er niets mee. Dan heeft hij de Md5-hash, die vervolgens nergens mee zal machten in rainbow-tabellen.
Dat van 3 inlogpogingen is sowieso een must om bruteforce tegen te gaan.
Als je een md5 hash maakt, gaat er data verloren en dus ben je niet meer in staat je wachtwoord doormiddel van de hash terug te krijgen.
Nee, jij mist mijn punt. Er gaat inderdaad data verloren maar dat maakt niet uit. Want als een gebruiker zijn wachtword in voert maak ik gebruik van dezelfde functie, waardoor als het wachtwoord juist is, de hashes overeen komen. Op deze manier heb je een voordeel aan het verliezen van data, want je krijg nu never nooit meer het oorspronkelijke wachtwoord, omdat deze in die 40 tekens van sha1 is opgeslagen, en die 40 tekens krijg je niet meer terug.
@dark_paul, jij snapt wat ik bedoel, dat van 3 inlogpogingen is inderdaad een must en was ik ook zeker van plan te gaan gebruiken.
Nee, dat zal ook beveiligd zijn. Maar mocht hij/zij dan toch aan de wachtwoorden in hash-vorm komen, eventueel nog met bijbehorende gebruikersnaam, dan kan hij/zij daar niets mee.
En dat was de vraag van Ultimatum, of het nodig is om in zo'n geval 2 encrypties over elkaar heen te halen.
Het antwoord is dus ja, het is veiliger.
Citaat:
@dark_paul, jij snapt wat ik bedoel, dat van 3 inlogpogingen is inderdaad een must en was ik ook zeker van plan te gaan gebruiken.
Dan had ik het toch bij het goede eind.
Hoe ik de wachtwoorden invoer: ik plak de md5 en sha1-hashes van het wachtwoord aan elkaar, en daar laat ik sha1 nog eens overheen gaan. Knappe kop die dat, met welke tabel dan ook, ontcijferd krijgt.
Dat is dus eigelijk wat ik ook doe omdat je op regel 2 een hash van 72 tekens hebt en op regel 3 verklein je dat weer naar 40, hierdoor kan je nooit de orginele 72 pakken en dus ook nooit hacken of wat dan ook, tenminste zo zie ik het. Dat was dus ook de vraag of ik dat zo goed dacht .
-_-' , alweer het zoveelste topic over dit onderwerp. Als je slim genoeg bent schrijf je je eigen encryptie en anders gebruik je maar de beschikbare functies. PHP.net: md5 , PHP.net: sha1 , PHP.net: crc32 , PHP.net: encrypt
@Dark_Paul: dankje voor je algoritme te delen met ons. Als ik in je database geraak zal ik eerst zien of ik die terug kan zetten in 72 tekens en dan moet ik gewoon maar splitsen van 0-32 en 32-72. Maar aangezien die kans zeer klein is doe ik geen moeite.
Hackers hacken je database voor een reden en zullen geen moeite doen om je algoritme te zoeken. Stel dat ze de hashes hebben van een online bank gaan ze vlugger zoeken omdat ze weten wat ze krijgen.
Hoe meer functies je gebruikt, hoe groter de kans op collisions Wikipedia.org: Hash_collision wordt.
maw. gewoon md5. Ik kan me niet voorstellen dat die gegevens zo interessant zijn dat iemand het gaat hacken.
Ten tweede heb je veel ernstigere problemen wanneer iemand in je database kan.