random wachtwoord

Status
Niet open voor verdere reacties.

mcfreak

Gebruiker
Lid geworden
21 feb 2012
Berichten
508
ik ben voor school (en dat doe ik vrijwillig, en is GEEN schoolopdracht voor de mensen die er meteen een mod bijroepen!) een website aan het maken om toetsen af te nemen.
Ik wil nu een random wachtwoord hebben voor de login per persoon om onderschijdt te maken tussen de leerlingen.
nu wil ik dat er een random wachtwoord uitrolt van ongeveer 7 letters/cijfers.
hoe doe ik dat?
uiteindelijk wil ik dat het in de mysql-database komt te staan maar dat is voor latere zorg...
veiligheid van de database maak ik me geen zorgen om omdat de poorten niet open staan, dus gecodeert hoeft niet, maar mag wel!
ik heb wel iets gevonden met cijfer maar ik wil er ook letters in hebben, hoe maak ik zo'n script?
 
Laatst bewerkt:
Aanmaken van een wachtwoord in php
PHP:
function generatePassword($length = 8, $strength = 8) {
        $vowels = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()1234567890';
        $consonants = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()1234567890';
        if ($strength & 1) {
            $consonants .= 'BDGHJLMNPQRSTVWXZ';
        }
        if ($strength & 2) {
            $vowels .= "AEUYDFG$%^&*";
        }
        if ($strength & 4) {
            $consonants .= '23456789';
        }
        if ($strength & 8) {
            $consonants .= '@#$%';
        }

        $password = '';
        $alt = time() % 2;
        for ($i = 0; $i < $length; $i++) {
            if ($alt == 1) {
                $password .= $consonants[(rand() % strlen($consonants))];
                $alt = 0;
            } else {
                $password .= $vowels[(rand() % strlen($vowels))];
                $alt = 1;
            }
        }
        return $password;
    }

    $wachtwoord = generatePassword();
 

Er zit sowieso een fout in dit script, op het moment dat je alles op nee zet, kan die namelijk geen wachtwoord aanmaken dus dat is niet handig dat zou dan een kleine aanpassing zijn.

Maar mcfreak vraag om een wachtwoord generator dat automatisch een wachtwoord aanmaakt, de tool die jij aangeeft is makkelijk als je de gebruiker een wachtwoord wilt laten maken zodat ze zelf hier de hand in hebben. Het voordeel van mij script is dat dit automatisch gebeurd, en zeker zo handig bij het inschrijven van personen of als iemand zijn wachtwoord vergeet.

Mcfreak,

Je moet hoe dan ook altijd jou wachtwoord gecodeerd opslaan je weet maar nooit,

je zou gebruik kunnen maken van sha1 of md5 ofzo.

Voor het opslaan in de database zal het dan zoiets worden, let wel dat je database veld waarin je wachtwoord opslaat de juiste type is in mijn voorbeeld gebruik ik sha1 dus van moet de type ook sha1 zijn:

(ik heb de code niet getest dus er kunnen fouten inztten.
PHP:
// deze code is voor bij een aanmelding

$gebruikersnaam = mysql_real_escape_string($_POST['gebruikersnaam']);

//generatePassword is uit mijn vorige post
$wachtwoord = generatePassword();;
$query="INSERT INTO users (gebruikersnaam, wachtwoord)VALUES('".$gebruikersnaam."', SHA1('" . $wachtwoord. "') )";
$result="mysql_query($query);"

Voor de update zal het dan zoiets zijn:
PHP:
// deze code kan je gebruiken bij wachtwoord vergeten

//of als je gebruik maakt van sessies dan moet je natuurlijk het id van de gebruiker via de sessies toevoegen.
$gebruikersid = mysql_real_escape_string($_POST['gebruikersnaamid']);

//generatePassword is uit mijn vorige post
$wachtwoord = generatePassword();;
$query="UPDATE users SET wachtwoord = SHA1('" . $wachtwoord. "') WHERE id='".$gebruikersid."' ";
$result="mysql_query($query);"

Ik denk dat je hiermee wel vooruit kan, als je nog vragen hebt stel ze gerust :)
 
Laatst bewerkt:
Er zit sowieso een fout in dit script, op het moment dat je alles op nee zet, kan die namelijk geen wachtwoord aanmaken dus dat is niet handig dat zou dan een kleine aanpassing zijn.

Maar mcfreak vraag om een wachtwoord generator dat automatisch een wachtwoord aanmaakt, de tool die jij aangeeft is makkelijk als je de gebruiker een wachtwoord wilt laten maken zodat ze zelf hier de hand in hebben. Het voordeel van mij script is dat dit automatisch gebeurd, en zeker zo handig bij het inschrijven van personen of als iemand zijn wachtwoord vergeet.

Mcfreak,

Je moet hoe dan ook altijd jou wachtwoord gecodeerd opslaan je weet maar nooit,

je zou gebruik kunnen maken van sha1 of md5 ofzo.

Voor het opslaan in de database zal het dan zoiets worden, let wel dat je database veld waarin je wachtwoord opslaat de juiste type is in mijn voorbeeld gebruik ik sha1 dus van moet de type ook sha1 zijn:

(ik heb de code niet getest dus er kunnen fouten inztten.
PHP:
// deze code is voor bij een aanmelding

$gebruikersnaam = mysql_real_escape_string($_POST['gebruikersnaam']);

//generatePassword is uit mijn vorige post
$wachtwoord = generatePassword();;
$query="INSERT INTO users (gebruikersnaam, wachtwoord)VALUES('".$gebruikersnaam."', SHA1('" . $wachtwoord. "') )";
$result="mysql_query($query);"

Voor de update zal het dan zoiets zijn:
PHP:
// deze code kan je gebruiken bij wachtwoord vergeten

//of als je gebruik maakt van sessies dan moet je natuurlijk het id van de gebruiker via de sessies toevoegen.
$gebruikersid = mysql_real_escape_string($_POST['gebruikersnaamid']);

//generatePassword is uit mijn vorige post
$wachtwoord = generatePassword();;
$query="UPDATE users SET wachtwoord = SHA1('" . $wachtwoord. "') WHERE id='".$gebruikersid."' ";
$result="mysql_query($query);"

Ik denk dat je hiermee wel vooruit kan, als je nog vragen hebt stel ze gerust :)

Het script kan makkelijk worden aangepast, was slechts ter voorbeeld ;)
 
bedankt, het is gelukt!
ook bedankt voor de snelle reacties!
 
Als je een beetje kunt nadenken en gewoon salt/pepper gebruikt is sha1/md5 veilig genoeg.

Absoluut niet dus. Met de huidige processpower zijn sha1/md5 zelfs met salt veel te snel gekraakt. Hoe vaak hoor je wel niet dat wachtwoorden op het internet worden gegooid door hackers? Als de wachtwoorden waren geëncrypteerd met bijvoorbeeld BCrypt en als je veilige wachtwoorden afdwingt, kan je de impact vermijden.

Je moet de regels volgen en als ze zeggen dat sha1 of md5 niet veilig is, moet je meegaan. Programmeren is heus niet stilstaan maar een continue proces van leren.
 
Absoluut niet dus. Met de huidige processpower zijn sha1/md5 zelfs met salt veel te snel gekraakt. Hoe vaak hoor je wel niet dat wachtwoorden op het internet worden gegooid door hackers? Als de wachtwoorden waren geëncrypteerd met bijvoorbeeld BCrypt en als je veilige wachtwoorden afdwingt, kan je de impact vermijden.

Je moet de regels volgen en als ze zeggen dat sha1 of md5 niet veilig is, moet je meegaan. Programmeren is heus niet stilstaan maar een continue proces van leren.

Hoe vaak hoor je wel niet dat de wachtwoorden die als plain text verschijnen nooit encrypted waren ;)
En als je hashes in een rainbow table verschenen zijn, had je een sterker password moeten maken.
 
Hoe vaak hoor je wel niet dat de wachtwoorden die als plain text verschijnen nooit encrypted waren ;)
En als je hashes in een rainbow table verschenen zijn, had je een sterker password moeten maken.

Het is nog altijd de taak van de informatici om de gegevens veilig te bewaren! Je kan deze verantwoordelijkheid niet naar de eindgebruiker schuiven.
 
Het is nog altijd de taak van de informatici om de gegevens veilig te bewaren! Je kan deze verantwoordelijkheid niet naar de eindgebruiker schuiven.

Dat zeg ik ook niet, maar men waarschuwt voor de sterkte van een wachtwoord, dan kan je wel zelf zo snugger zijn hier wat mee te doen. En de zin daarboven gaf ook aan dat de technici de problemen veroorzaken.
Hoe vaak ik wel niet mijn wachtwoord gemaild krijg als ik een "wachtwoord vergeten' knop indruk.. vraag dan per direct van een bewijsje dat mijn gegevens uit de database worden verwijderd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan