[PHP] Hoe genereer jij geheime codes?

Gestart doorWouterr26 reacties129 weergaven

27 berichten · pagina 1 van 2

Wouterr

Lid · Topicstarter

Berichten
5.274
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien

Eindhoven, Nederland

Hey,

Ik zat me zo is af te vragen, wat nou eigenlijk de beste manier is om bijvoorbeeld een code te genereren voor validatie of een tijdelijk wachtwoord?

Zelf gebruik ik altijd zoiets:

[COLOR= #0000BB]<?php
$allCharacters[/COLOR] [COLOR= #007700]=[/COLOR] str_split[COLOR= #007700]([/COLOR][COLOR= #DD0000]qwertyuiopasdfghjkl;zxcvbnm,./[]1234567890-QWERTYUIOPASDFGHJKL:ZXCVBNM<>!@#$%^&*()_[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$adminHash[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000][/COLOR][COLOR= #007700];[/COLOR]
                
[URL="http://www.php.net/for"]for[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]<[/COLOR] [COLOR= #0000BB]100[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++)
{[/COLOR]
    [COLOR= #0000BB]$adminHash[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #0000BB]$allCharacters[/COLOR][COLOR= #007700][[/COLOR][URL="http://www.php.net/array_rand"]array_rand[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$allCharacters[/COLOR][COLOR= #007700])];
}[/COLOR]


Maar wat gebruiken jullie hiervoor?

Mvg,
Wouterr
0
Fass

Lid

Berichten
3.771
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
umm.. iets als md5(microtime())?
0
Berichten
3.788
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
substr(md5(microtime()), 0, 10);
0
Berichten
6.144
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
[COLOR= #0000BB]<?php
$salt[/COLOR]       [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]gDgbnfSGbg!4dsnD34Fhsvd[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$pepper[/COLOR]  [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]ZbfiaDrbwDFh51:fdhrvvaj46[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$password[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$salt[/COLOR][COLOR= #007700].[/COLOR][URL="http://www.php.net/md5"]md5[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$wachtwoord[/COLOR][COLOR= #007700]).[/COLOR][COLOR= #0000BB]$pepper[/COLOR][COLOR= #007700]);[/COLOR]
?>
0
Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
public function rand_string($length, $characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890") {
        $string = ;
          
        for ($p = 0; $p < $length; $p++) {
            $string .= $characters[mt_rand(0, (strlen($characters)-1))];
        }
        
        return $string;
    }


@Hierboven, dat is niet wat de TS bedoeld en kijk eens naar BCrypt, sha en md5 zijn zo achterhaald tegenwoordig.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Leuk dat mensen altijd ABC enz. zelf typen terwijl je ook [func]range()[/func] kan gebruiken.

Ik doe trouwens hetzelfde als eleky ongeveer. Hashen van microtime, en daar dan een substring van nemen.
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Rik schreef:
Leuk dat mensen altijd ABC enz. zelf typen terwijl je ook [func]range()[/func] kan gebruiken.
Ik doe trouwens hetzelfde als eleky ongeveer. Hashen van microtime, en daar dan een substring van nemen.
Dat inderdaad. En als het echt veilig moet zijn doe je het natuurlijk wat anders en voeg je er nog wat checks aan toe om de veiligheid te waarborgen.
0
Berichten
3.788
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Maar vaak hoeft het niet echt veilig te zijn.
Een hash van microtime van 10 tekens lang is zo goed als niet te kraken dus goed genoeg voor de meeste dingen zoals tijdelijk wachtwoord, activatiecode
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Klopt smile en als het wel veilig moet zijn dan voldoet een md5 van microtime ook best (alsnog veel veiliger dan het gemiddelde wachtwoord) en die sla je gewoon goed geëncrypt op.
0
Berichten
6.485
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Jponsen schreef:
[COLOR= #0000BB]<?php
$salt[/COLOR]       [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]gDgbnfSGbg!4dsnD34Fhsvd[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$pepper[/COLOR]  [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]ZbfiaDrbwDFh51:fdhrvvaj46[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$password[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$salt[/COLOR][COLOR= #007700].[/COLOR][URL="http://www.php.net/md5"]md5[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$wachtwoord[/COLOR][COLOR= #007700]).[/COLOR][COLOR= #0000BB]$pepper[/COLOR][COLOR= #007700]);[/COLOR]
?>
Niet erg logisch, meestal is de pepper in je config beschreven en de salt user-specifiek.
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Ik heb tegenwoordig ook altijd meerdere salts. Eentje die je in de database opslaat en eentje die inderdaad ergens in een config staat.

Dan moet je wel een érg goede hacker hebben, wil die beide salts kunnen krijgen. En bovendien is het onmogelijk om alle wachtwoorden in één keer te bruteforcen, omdat elk wachtwoord een andere salt heeft.
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
En daarom nog een goede encryptie erbij zodat het encrypten een seconde ofzo duurt waardoor bruteforce al helemaal praktisch onmogelijk is. biggrin
0
Berichten
6.144
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rogier schreef:
Eerdere citaten tonen
Jponsen schreef:
[COLOR= #0000BB]<?php
$salt[/COLOR]       [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]gDgbnfSGbg!4dsnD34Fhsvd[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$pepper[/COLOR]  [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]ZbfiaDrbwDFh51:fdhrvvaj46[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$password[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/sha1"]sha1[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$salt[/COLOR][COLOR= #007700].[/COLOR][URL="http://www.php.net/md5"]md5[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$wachtwoord[/COLOR][COLOR= #007700]).[/COLOR][COLOR= #0000BB]$pepper[/COLOR][COLOR= #007700]);[/COLOR]
?>
Niet erg logisch, meestal is de pepper in je config beschreven en de salt user-specifiek.

Is even snel een voorbeeld, ik doe het bij ieder project anders, had ooit een echt goede gemaakt, maar die kan ik helaas niet meer terug vinden.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Iedereen heeft het over passwords terwijl de TS het over tijdelijke hashes heeft die vaak na een bepaalde tijd weer weg worden geknikkerd en geen password in gegooid is.... confused
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren