okay, men hvis jeg har kopier lidt for meget af den ? hvilke noget af det skal så væk?.
Denne del:
- //Her tjekkes passwords
- $passwords = array('Not very secret', 'Very secret');
- foreach ($passwords as $p) {
- echo '"' . $p . '" is' . ((crypt($p, $hash) === $hash) ? '' : ' not') . " correct.\n";
- }
Alfabetet bruges kun til generering af saltet. Det har intet med dit password at gøre.
Alle tegn er tilladte i brugerens password, og ja, jo længere det er, desto sikrere er det imod brute force, men et langt password, som kan slåes op i en ordbog er heller ikke nogen god idé.
Du kan til dels sikre imod brute force (online i hvert fald) ved kun at tillade f.eks. tre forkerte passwords på samme brugernavn for en IP inden for 10 minutter. Det vil gøre det til en meget langsommelig proces at bryde ind.
Okay tak for snakkene,
Men det kun være det var noget man skulle overvejr altså det sidste du skrive på siden. altså "
Du kan til dels sikre imod brute force (online i hvert fald) ved kun at tillade f.eks. tre forkerte passwords på samme brugernavn for en IP inden for 10 minutter. Det vil gøre det til en meget langsommelig proces at bryde ind."
Men det sidste spørgsmål er hvordan ligge jeg en function ind i en function altså f.eks sådan her
Kan jeg gøre noget ligne i den her still
- <?php
-
- function bruger(){
- //finder ud af om bruger har skrevet brugernavn og pass
-
- //her skal den så gøre det med password
- //f.eks lige som her;
-
- function generateSalt($length) {
- $alphabet = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
- $alphabet_length = strlen($alphabet);
- $salt = '';
- for ($i = 0; $i < $length; $i++) {
- $salt .= $alphabet[rand(0, $alphabet_length - 1)];
- }
- return $salt;
- }
-
- $password = $_POST["pass"];
- $algorithm = '$6$'; //<--- Dette betyder SHA 512
- $salt = generateSalt(16); //<--- SHA 512 bruger et 16 tegn langt salt
-
- $hash = crypt($password, $algorithm . $salt);
-
- //Her efter ligges det ind i databasen
- if ($stmt = $this->mysqli->prepare('INSERT INTO `bruger`
- (`rank`, `email`, `brugernavn`, `password`, `profilbillede`, `navn`, `efternavn`, `alder_d`, `alder_m`, `alder_aar`, `status`, `kon`, `seksualitet`, `land_by`, `hojde`)
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'))
- {
-
- $stmt->bind_param('isssssssssiiisi', $rank, $email, $brugernavn, $password, $profilbillede, $navn, $efternavn, $alder_d, $alder_m, $alder_aar, $kon, $seksualitet, $partnerstatus, $land_by, $hojde);
- $rank = '1';
- $email = $_POST["email"];
- $brugernavn = $_POST["brugernavn"];//C
- $password = $hash;//C
-
- //osv...
- }
- }
- ?>
f.eks Password ligge jeg over i function file og så bare kalder den over til den her function som er på samme side eller hvad man forklare det bedre.
Indlæg senest redigeret d. 16.11.2012 14:42 af Bruger #17136