sql >> Database teknologi >  >> RDS >> Mysql

Hvilken funktion skal jeg bruge til at hash kodeord i MySQL?

Det er ikke nødvendigvis, at du ikke skal bruge MD5, så meget det er, at du ikke bare skal bruge MD5, da dette efterlader dig sårbar over for regnbuebordsangreb (en regnbuetabel er en tabel med forudberegnede hashværdier - hvis dit kodeord endda er ganske almindeligt eller simpelt, behøver angriberen blot at slå hashen op, og han kender din klartekstadgangskode. )

Du bør i det mindste tilføje et salt til hver adgangskode, så enhver eksisterende regnbuetabel er ubrugelig, hvilket tvinger angriberen til at generere en helt ny regnbuetabel kun til din database med adgangskoder.

Endnu bedre er at bruge et andet salt for hver adgangskode i din database, sig det brugernavn, den er forbundet med, så en angriber ikke engang kan generere en regnbuetabel for hele din database og skal knække hver indgang separat.

MD5 er også en meget hurtig algoritme. Hastighed er fjenden, når det kommer til cracking - jo længere tid det tager at generere en hash, jo længere tid tager det for hvert forsøg en hacker gør. Noget simpelt som at hashe klarteksten 100 gange med et nyt ekstra salt hver gang ville næsten ikke kunne opfattes (hvis overhovedet) for en bruger, der logger ind på dit websted, men det ville øge den tid, det tager at brute-force en adgangskode med det samme 100 gange.

Langt, langt flere detaljer her:http://www.codinghorror.com/blog/ archives/000953.html



  1. Sådan finder du navnet på en begrænsning i MySQL

  2. Er det muligt at indsætte data i en MySQL-visning?

  3. DBConcurrency-undtagelse opstod under opdatering ved hjælp af dataadapter

  4. Sådan springer du række over, når du importerer dårlig MySQL-dump