1. som kristian skriver så er det meget normalt ikke at kryptere kodeord, men derimod at hashe dem. hashing betyder meget simpelt at man smider dem igennem en kværn og de drysser ud med præcis det samme mønster hvergang man gør dette
så f.eks. smider man 123 igennem kværnen bliver det hver gang til f.eks. 321 (dette er et meget basalt eksempelt og er her for at hjælpe med forståelsen, en normal hashing er langt mere kompliceret og som kristian næsten umulig at knække) (se note 1)
Det du gør er at når du indsætter data'en ind i databasen så smider du denne igennem en hashing funktion. Der findes flere forskellige i PHP men brug md5() funktionen til at starte med
2.
Når du skal kontrollere om der findes en bruger ved dette navn i databasen laver du en
$result = mysql_query(SELECT user_informations_felter_du_ønsker_at_trække_ud_hvis_brugeren_findes FROM users WHERE username = 'brugerens_navn_fra_input' AND password = 'det_indtastede_kodeord');
lav så en mysql_num_rows (er ikke sikker på navnet men slå den op i manualen hvis du er i tvivl) på $result og hvis den returnere præcis 1 bruger så ved du at bruger eksistere og at passwordet er indtastet korrekt.
3.
Det bedste sikkerhedråd man kan få er stol aldrig på data en bruger indtaster!
Det næste er lav aldrig en blacklist, men altid en whitelist. altså lav aldrig en liste over forbudte ting men lav derimod en liste over ting der er tilladte. Du ved aldrig om du har taget højde for alle ting og det er derfor nemmest at lave en whiteliste
note 1. Der findes idag noget man kalder rainbow tabeller som tillader at man kan lave et opslag der gør at man kan se hvilken værdi der hasher til den given hashværdi, man kan derfor ikke længere føle sig 100% sikker på md5() hashing, dette samme er gældende for SHA1 og nogle andre alternativer.