Random Password Generator

Door Mebus Hackintosh, 14 jaar geleden, 13.714x bekeken

Ik had een simpele functie nodig die wachtwoorden kon aanmaken en waarbij geen super lange codes bij nodig waren. Van daar dit script.

Er zit een beveiliging in zo dat de wachtwoorden minstens 8 tekens lang moeten zijn. Dit omdat zelfs deze wachtwoorden met enige geduld te bruteforcen zijn en er zijn tegenwoordig md5 en sha1 databases. Ik zelf gebruik sha1

Gesponsorde koppelingen

PHP script bestanden

  1. random-password-generator

 

Er zijn 20 reacties op 'Random password generator'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
PHP erik
PHP erik
14 jaar geleden
 
0 +1 -0 -1
Is een kort scriptje :)

Ik wil je er wel op attenderen dat er ook sha1-databases zijn en dat wat salt dat probleem oplost. Maar dat heeft verder niets met je scriptje te maken natuurlijk.
Han eev
Han eev
14 jaar geleden
 
0 +1 -0 -1
Grappig scriptje, maar ik zal dat @ wel wegwerken, staat niet echt mooi.
Zet gewoon voor de for-loop een $pass = ''; en het probleem is ook opgelost.
Teun Beijers
Teun Beijers
14 jaar geleden
 
0 +1 -0 -1
grappig script inderdaad, oplossing is mooi bedacht :D
Mebus  Hackintosh
Mebus Hackintosh
14 jaar geleden
 
0 +1 -0 -1
@PHPerik, en inderdaad ook natuurlijk altijd een Salt toevoegen.

@han, weet ik maar dat vind ik weer zo lelijk.. zo een extra lege variabele in je script..
Eddy E
Eddy E
14 jaar geleden
 
0 +1 -0 -1
Dit kan ook netter:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
function RandomPass($length = null) {
?>


Wordt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
function RandomPass($length = 8) {
?>


Geef je waarde van $length direct op en klaar.
Vooral $pass = null; staat ook mooi/netjes en werkt net zo goed als = '';
Mebus  Hackintosh
Mebus Hackintosh
14 jaar geleden
 
0 +1 -0 -1
En wat nou als iemand een lager cijfer als een 8 doet? Dit doe ik zo zodat er een beveiliging in zit tegen te korte wachtwoorden. Zodat een gegenereerde wachtwoord niet korter is als 8 tekens.
Robert Deiman
Robert Deiman
14 jaar geleden
 
0 +1 -0 -1
@mebus

Dan breidt je de functie uit met een controle... Wanneer de waarde lager is dan 8, dan geeft die een error terug en voert die de functie niet uit, anders wel...
Mebus  Hackintosh
Mebus Hackintosh
14 jaar geleden
 
0 +1 -0 -1
Ik wil gewoon een random wachtwoord van minstens 8 tekens.. En wil hier bij niet dat ik een error terug krijg maar gewoon één wachtwoord en niks anders. Ik doe dit gewoon voor de veiligheid dat wachtwoorden die aangemaakt worden niet korter kunnen zijn dan 8 tekens. Wil je dit wel dan verander je het maar. Want als ze wel achter je salt komen en ze kunnen in je database komen en je hebt wachtwoorden die korter zijn als 8 tekens dan ben je de ***. Veiligheid is voor mij alles. Laatst had ik op een profielen website doormiddels van XSS achter andermans MD5 hashes kunnen komen die opgeslagen waren in COOKIES.. dan nog een md5 database en klaar ben je.. en anders kan je altijd nog bruteforcen...
Eddy E
Eddy E
14 jaar geleden
 
0 +1 -0 -1
@ Mebus: het ging mij hoe je de functie definieerd.

Dus function wat(<dit hier>) geef je nooit loze of dubbele waarden op. Als $length niet is ingevuld, is dat automatisch null. Dus wat jij doet is dan dubbelop.
Ik reageer niet op je controle, want die blijft nodig.
Wellicht dat dat iets onduidelijk verschafte.
Om die duidelijkheid te vergroten zal ik mijn vorige post iets aanpassen (dwz: jouw controle niet tonen).
Lode
Lode
14 jaar geleden
 
0 +1 -0 -1
http://www.php.net/str_shuffle veel simpeler.

En dit voegt echt weer helemaal niks toe...
Jelmer -
Jelmer -
14 jaar geleden
 
0 +1 -0 -1
str_shuffle verwisselt alleen karakters, en de x karakters die je in je string stopt zijn de x karakters die eruit komen. Stel een string van 8 karakters, dan heb je 8! mogelijke uitvoeren, ervan uitgaande dat het 8 unieke karakters waren. Deze functie heeft dan ten minste nog 93^8 mogelijke resultaten.
Ralph
ralph
14 jaar geleden
 
0 +1 -0 -1
Handig script!
Mebus  Hackintosh
Mebus Hackintosh
14 jaar geleden
 
0 +1 -0 -1
@Lode, En bedankt.. Waarom voegt het volgens jou niks toe dan? Want van andere mensen hier krijg ik hier wel gewoon hardstikke leuke reacties.
Richard van Velzen
Richard van Velzen
14 jaar geleden
 
0 +1 -0 -1
Wat Lode ongeveer bedoelt is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function randomPass($length = null) {
    static $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    
    if(!is_int($length) || $length < 8) {
        $length = 8;
    }

    
    return substr(str_shuffle($characters), 0, $length);
}

?>
Fons Hettema
Fons Hettema
12 jaar geleden
 
0 +1 -0 -1
Kleine update:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

$passlength
= 10;
$charset = 'abcdefgijklmnopqrstuvwxyz1234567890!''£$%^&*()';

for ($x=1; $x<=$passlength; $x++)
{

    $rand = rand() % strlen($charset);
    $temp = substr($charset, $rand, 1);
    $password = .= $temp;
}

echo 'Random generated password: <br />' . $password;

?>
Jordi Kroon
Jordi Kroon
12 jaar geleden
 
0 +1 -0 -1
Ik doe het altijd zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    //Create random private key
   $letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW0123456789';
   $shuffletters = str_shuffle($letters);
   $private_key = substr($shuffletters, 32);
  
   //public key
   $public_key = 'mx9unmcq87NSuiy87hiOHio8hJIO8UH89oh';
  
   //public + password + privatekey
   $password = sha1( $public_key . $_POST['upass'] . $private_key );
?>
Wouter J
Wouter J
12 jaar geleden
 
0 +1 -0 -1
Ik doe het vaak zo, voor random codes heeft PHP uniqid.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

$salt
= uniqid();
$pepper = uniqid('', true);

$password = $salt.md5($_POST['pass']).$pepper;

?>
Pim -
Pim -
12 jaar geleden
 
0 +1 -0 -1
Waarom zou je een hash nemen van uniqid()? En niet de UUID zelf?
Wouter J
Wouter J
12 jaar geleden
 
0 +1 -0 -1
@pim, ik neem de hash van uniqid niet. Ik neem alles de hash van $_POST['pass'] en daarnaast nog die uniqid.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jordi Kroon
Jordi Kroon
12 jaar geleden
 
0 +1 -0 -1
Waarom geen sha1 maar wel md5

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. random-password-generator

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.