help blowfish

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior front-end developer (React)

Functie Momenteel zijn ze op zoek naar een ervaren front-end developer. Als senior werk je nauw samen met 5 collega developers. Een klein scrum team dus, met korte lijnen waardoor jouw ideeën snel tot uitvoering gebracht kunnen worden. De huidige applicaties worden veelal ontwikkeld met o.a. React, Redux, TypeScript. Ze zijn echt op zoek naar een kartrekker in het team. Naast het meedenken over, opzetten en uitvoeren van bijvoorbeeld de architectuur of toepassing van nieuwe technieken krijg je ook veel tijd om de meer junior (front-end) developers te begeleiden. Hierin nemen ze graag de tijd om mensen de ruimte te

Bekijk vacature »

Backend Developer Scrummaster .NET

Samengevat: Deze werkgever is een ambitieus internetbedrijf met een passie voor digitale communicatie. Ben jij geschikt als Backend Developer? Heb je ervaring met .NET platform? Vaste baan: Backend Developer / SCRUM Master Scrum HBO WO €3.800 - €6.000 Deze werkgever is een innovatief bedrijf met enthousiaste mensen die jarenlang ervaring hebben met het ontwikkelen internet- en intranetoplossingen. Wij houden van korte lijnen en open en eerlijke communicatie. Wij zetten graag onze jarenlange ervaring in om perfect werkende oplossingen te ontwikkelen. Wij ondersteunen dienstverlenende organisaties bij het ontwikkelen en realiseren van een effectief, adaptief communicatieplatform. Je ontwikkelt met ons de meest

Bekijk vacature »

REMOTE - Front-end Angular developer

Functie Het IT-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn momenteel op zoek naar een ervaren Front-end developer die autonoom en gedisciplineerd aan de slag gaat, en bij aanvang als enige developer met hun Front-end applicaties bezig is. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde

Bekijk vacature »

Back-end Software Developer

Functie omschrijving Ben jij op zoek naar een uitdagende development functie bij een klein gespecialiseerd softwarebedrijf? Wil jij graag hybride werken (combi tussen thuis + kantoor), loop jij warm voor maatwerk software en voel jij je prettig in een informele cultuur? Zoek dan niet verder! Reageer direct! Voor een gewilde werkgever in omgeving Tilburg zoeken wij een back-end software developer met een aantal jaar werkervaring. Je gaat werken voor een klein softwarebedrijf dat gespecialiseerd is in de ontwikkeling van integratiesoftware. Jouw werkzaamheden zien er als volgt uit: In een klein team met 4 ontwikkelaars houd jij je bezig met afwisselende

Bekijk vacature »

Java Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Robot Programmeur

In het kort Drie redenen waarom deze vacature uniek is! Modern, innovatief en Informeel bedrijf waar veel mogelijk is Werken met diverse robot merken Meehelpen met inbedrijfstellingen bij de klant De organisatie Hier ga je aan de slag Dit groeiende bedrijf van totaaloplossingen in de automatisering van productieprocessen, is hoofdzakelijk actief in de Benelux. Vanuit het kantoor in regio Amersfoort worden veel oplossingen geboden in de vorm van robotica. Geen project is hetzelfde wat garant staat voor bijzonder veel afwisseling. De bedrijfsgrootte is ongeveer 80 man. Van gerobotiseerde machinebeladingen tot aan assemblage automatiseringen wordt vanuit krachtige engineering maatwerk equipment geleverd.

Bekijk vacature »

Outsystems Developer Junior

Dit ga je doen Bouwen aan nieuwe en innovatieve applicaties; Maken van koppelingen tussen Outsystems en het bestaande applicatielandschap; Troubleshooting op bestaande software. Hier ga je werken De organisatie is internationale speler binnen de bouwbranche en richt zich op de infrastructuur, zowel boven als onder de grond. Ze zijn ruim 1100 man groot en maken op IT vlak een mooie groei door. Als junior Outsystems Developer kom je te werken op een IT-afdeling van zo'n 25 man groot. Een aantal jaar geleden hebben ze de keuze gemaakt om zich meer te gaan richten op ontwikkeling en door de groei van

Bekijk vacature »

C# Developer

Dit ga je doen De requirements in kaart brengen van de klant; Implementeren van functionele en technische specificaties bij opdrachtgevers; Oplossen van bugs; Meewerken aan maatwerksoftware voor nieuwe opdrachtgevers; Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving De database ontwikkelen en onderhouden; Hier ga je werken Onze klant is gevestigd in het westen van Nederland en is gespecialiseerd in het ontwikkelen van software voor de levensmiddelen industrie. De software die het team maakt optimaliseert voornamelijk de administratieve processen, maakt deze meetbaar en zorgt ervoor dat de data zo goed mogelijk gebruikt kan worden. Binnen een van

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »

Typescript Developer / Cloud platform

Dit ga je doen (Door)Ontwikkelen van het cloud platform; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het cloud platform; Sparren met de business. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er veel voor. Als Typescript ontwikkelaar word je onderdeel van het team gericht op de (door)ontwikkeling van hun eigen cloud platform welke wordt

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij recent jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een erkende werkgever in regio Waalwijk zijn wij op zoek naar een back-end developer. Kennis of ervaring met C# & SQL is een must! Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten; Je bent verantwoordelijk voor de beheer en ontwikkeling van de software; Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze

Bekijk vacature »

Backend developer

Functie omschrijving Ben jij graag bezig met de back-end van applicaties? Zou je dit graag willen doen voor een kleine werkgever waar ook tijd is voor een drankje op zijn tijd? Je taken hierbij zullen bestaan uit: Gebruik maken van de volgende technieken: .NET (core), C#, SQL, XML, MVC, JSON, REST & SOAP API. Gebruik maken van de volgende tools: Visual Studio, GIT, Jira, Jenkins. Bovengenoemde technieken en tools ga je gebruiken om: Nieuwe functionaliteiten te ontwikkelen. Wijzigingsverzoeken van klanten uitvoeren. Verzorgen van koppelingen tussen data. Bedrijfsprofiel Jouw nieuwe werkgever bevindt zich in regio Raamdonksveer en bieden oplossingen op gebied

Bekijk vacature »

Software programmeur

Functieomschrijving Voor een uitdagende werkgever in regio Breda zijn wij op zoek naar een Full Stack C#.NET programmeur. Je bent verantwoordelijk voor het ontwikkelen van apps, webapplicaties en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines te scannen en vervolgens de data om te zetten in management informatie voor de klanten. Taken en verantwoordelijkheden: Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks, HTML, TypeScript, SQL & C++, CSS. Geen ervaring met één van deze technologieën is dan ook geen enkel probleem! Deze werkgever biedt

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Pagina: « vorige 1 2 3 volgende »

Kenny iets

kenny iets

21/09/2014 16:53:40
Quote Anchor link
Bart V B op 21/09/2014 16:52:16:
Zoals je ziet heb je nooit een zelfde hash. Dat is ook de bedoeling.
Maar volgens mij heb je mijn tweede voorbeeld niet gebruikt anders had je gezie dat het wel werkt.


ja
maar ik snap het gwn echt niet dat
het is me dan wel gelukt voor een registatie pagina te maken
maar inloggen niet
 
PHP hulp

PHP hulp

25/04/2024 10:07:58
 
Bart V B

Bart V B

21/09/2014 16:58:03
Quote Anchor link
Laat je code van registreren en login eens zien wat je nu hebt.
 
Kenny iets

kenny iets

21/09/2014 17:10:12
Quote Anchor link
login heb ik nu niet meer
registreren
[spoiler]
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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
require_once("config.php");
if(isset($_POST['hidden']) && $_POST['hidden'] ==1){

$username = $mysqli->real_escape_string($_POST['username']);
 $password = $mysqli->real_escape_string($_POST['password']);
 $password2 =$mysqli->real_escape_string($_POST['password2']);

if ($password == $password2){
 $sql1 = $mysqli->query("SELECT username from user WHERE username='".$username."'");
if($sql1->num_rows == 1){
echo"bestaat al";
 }
else{
         $sql3 = $mysqli->query( "INSERT INTO user (`username`, `password`) VALUES ('".$username."','".password_hash($password, CRYPT_BLOWFISH)."')");
 }

}
else{
    echo "passworden komen niet overeen";
}
}

?>

<html>
<head><title>registeer</title></head>
<body>

<form action='registeer.php' method='post'>
username:<input type='text'name='username'/> <br />
password: <input type='password'name='password' /> <br />
password retype: <input type='password'name='password2' /> <br />
<input type='hidden' name='hidden' value=1>
<input type='submit' value='registeer'>
</form>

</body>
</html>

[/spoiler]
 
Ward van der Put
Moderator

Ward van der Put

21/09/2014 17:13:17
Quote Anchor link
if ... else ... else ...?

Of heb je toch nog wat weggelaten?
 
Kenny iets

kenny iets

21/09/2014 17:17:05
Quote Anchor link
ik denk tog dat er nog wat foutjes in zitten maar het werkt wel;:)
 
Ward van der Put
Moderator

Ward van der Put

21/09/2014 17:21:37
Quote Anchor link
Just checking.

Ik dacht dat je een stuk code had weggelaten, ook omdat je na $sql1 ineens $sql3 hebt en er nergens een $sql2 te vinden is...
 
Kenny iets

kenny iets

21/09/2014 17:30:53
Quote Anchor link
ergens een andere php bestand
iemand die dat dat fouten op kon leveren


Toevoeging op 21/09/2014 17:36:51:

maar ff tot zaken
kan jullie helpen met login script?
 
- Ariën  -
Beheerder

- Ariën -

21/09/2014 20:47:52
Quote Anchor link
Heb je al iets geprobeerd met Barts code? Verder plaats je al alles goed gevalideerd is een sessie.
 
Kenny iets

kenny iets

21/09/2014 20:56:39
Quote Anchor link
dat is een regestratie
en ja maar kwam er niet egt uit om het in me login te bouwen
en heb hem verwijder dus moet hem zo ff op nieuw maken
 
- Ariën  -
Beheerder

- Ariën -

21/09/2014 21:27:08
Quote Anchor link
Die code is bedoeld om een hash van een wachtwoord te controleren. Voor een login pagina dus.

Let a.u.b. ook even op je taalgebruik. We zitten op een forum en niet op Whatsapp waar je verkortte woorden als 'egt' gebruikt.
Gewijzigd op 21/09/2014 21:35:00 door - Ariën -
 
Bart V B

Bart V B

23/09/2014 09:31:44
Quote Anchor link
Zal een keer je laten zien hoe je het ongeveer moet doen:
login.php
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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
session_start();

$mysqli = new mysqli('host', 'user', 'password', 'database');
if(mysqli_connect_errno())
{

    trigger_error('Fout bij verbinding: '.$mysqli->error);
}



if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{

    $options = [
            'cost' => 10
           ];
          
    $username = $mysqli->real_escape_string($_POST['username']);
    
    $sql = "SELECT username FROM user WHERE username= '".$username."' AND password = '".password_hash($_POST['password'], PASSWORD_BCRYPT, $options)."'";
    
    if(!$result = $mysqli->query($sql))
    {

    trigger_error('Fout in query: '.$mysqli->error);
    }

    else
    {
        if( $result->num_rows > 0 )
        {

            // session aanmaken
            $_SESSION['loggedin'] = true;
            // doorsturen naar beveiligde pagina
            header('Location: beveiligdepagina.php');
            exit();
        }

        else
        {
            echo 'Login gegevens kloppen niet.';
        }
        
    }

}

?>


<html>
<head><title>Login</title></head>
<body>

<form action="login.php" method="post">
username: <input type="text" name="username" /> <br />

password: <input type="password" name="password" /> <br />

<input type="submit" value="registeer">
</form>

</body>
</html>
 
Sam van Broemsen

Sam van Broemsen

23/09/2014 16:57:27
Quote Anchor link
Nooit een error aan een gebruiker laten zien, die $mysqli->error; moet dus weg als het systeem openbaar wordt gemaakt.
Gewijzigd op 23/09/2014 16:58:08 door Sam van Broemsen
 
Ward van der Put
Moderator

Ward van der Put

23/09/2014 17:04:43
Quote Anchor link
Sam, er staat geen echo voor, hè.

Een professionele productieomgeving stel je zó in dat elke kritieke error of exception centraal wordt afgehandeld en in een log verschijnt. Dáár bepaal je vervolgens ook wat de gebruiker ervan te zien krijgt, bijvoorbeeld een foutmelding.
 
Sam van Broemsen

Sam van Broemsen

23/09/2014 17:16:28
Quote Anchor link
Ward van der Put op 23/09/2014 17:04:43:
Sam, er staat geen echo voor, hè.

Een professionele productieomgeving stel je zó in dat elke kritieke error of exception centraal wordt afgehandeld en in een log verschijnt. Dáár bepaal je vervolgens ook wat de gebruiker ervan te zien krijgt, bijvoorbeeld een foutmelding.


Een foutmelding laten zien is prima,
Maar om alle informatie over de fout te laten zien is een beetje overbodig en komt onprofessioneel over. Wanneer mensen bij Google een foutje maken en er misschien een MySQL-Error komt, dan is de fout toch ook niet meteen zichtbaar?
 
Ward van der Put
Moderator

Ward van der Put

23/09/2014 17:24:15
Quote Anchor link
>> Maar om alle informatie over de fout te laten zien is een beetje overbodig en komt onprofessioneel over.

Dat doet trigger_error() in het voorbeeld van Bart ook helemaal niet. trigger_error() laat het PHP-script een user error gooien. Wat je daarmee vervolgens doet, is aan jou.
 
Bart V B

Bart V B

23/09/2014 18:22:04
Quote Anchor link
Sam,
Ik maak al lang genoeg scripts om te weten hoe het wel en niet moet.
Op of aanmerkingen betreft mijn voorbeeld zijn prima. Maar laat het dan ook zien met een beter voorbeeld en kijk dan eerst even wat een ding doet zoals trigger_error().
 
Kenny iets

kenny iets

23/09/2014 19:49:20
Quote Anchor link
Bart V B op 23/09/2014 09:31:44:
Zal een keer je laten zien hoe je het ongeveer moet doen:
login.php
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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
session_start();

$mysqli = new mysqli('host', 'user', 'password', 'database');
if(mysqli_connect_errno())
{

    trigger_error('Fout bij verbinding: '.$mysqli->error);
}



if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{

    $options = [
            'cost' => 10
           ];
          
    $username = $mysqli->real_escape_string($_POST['username']);
    
    $sql = "SELECT username FROM user WHERE username= '".$username."' AND password = '".password_hash($_POST['password'], PASSWORD_BCRYPT, $options)."'";
    
    if(!$result = $mysqli->query($sql))
    {

    trigger_error('Fout in query: '.$mysqli->error);
    }

    else
    {
        if( $result->num_rows > 0 )
        {

            // session aanmaken
            $_SESSION['loggedin'] = true;
            // doorsturen naar beveiligde pagina
            header('Location: beveiligdepagina.php');
            exit();
        }

        else
        {
            echo 'Login gegevens kloppen niet.';
        }
        
    }

}

?>


<html>
<head><title>Login</title></head>
<body>

<form action="login.php" method="post">
username: <input type="text" name="username" /> <br />

password: <input type="password" name="password" /> <br />

<input type="submit" value="registeer">
</form>

</body>
</html>

moet
password_hash
password_verify
zijn?
 
Sam van Broemsen

Sam van Broemsen

24/09/2014 15:53:51
Quote Anchor link
Ik snap zelf niet hoe je daar op bent gekomen.

Een hash kan nooit het zelfde zijn.

Je moet de wachtwoorden uit de db halen waarvan de gebruikersnaam $_POST['username'] is.

Dan doe je if (password_verify($_POST['username'], $passwordvandb)) : echo "Jippie!"; else : "Mwahh.. Niet gelukt."; endif;

En als dat nog te moeilijk is, dan vraag ik je om eerst de basis van if statements te leren, of eerst een inlogsysteem maken zonder iets gehasht. Dit is echter wel heel onveilig, maar het is waarschijnlijk wel handig om te weten hoe een inlogsysteem werkt.
 
Kenny iets

kenny iets

27/09/2014 15:45:44
Quote Anchor link
dit heeft een vriend voor me gemaakt :)
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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
require "config.php";
if ($_SERVER['REQUEST_METHOD'] == "POST") {
        if ($_POST['username'] == NULL) {
                $login_error =  "username in vullen aub";
        }

        if ($_POST['password'] == NULL) {
                $login_error =  "password invullen aub";
        }

      
       if (isset($_POST['password']) && isset($_POST['username'])) {

$username = $mysqli->real_escape_string($_POST['username']);
$password = CRYPT_BLOWFISH;


$query = $mysqli->query("SELECT * FROM user WHERE username = ".$username." AND password = ".$password." LIMIT 1");

        if ($query->num_rows == 1) {

                $row = $query->fetch_assoc();

                $_SESSION['loggedin'] = TRUE;
                $_SESSION['username'] = $_POST['username'];
                $_SESSION['uid'] = $row['id'];
                header("location: member.php");

        }
else {
            header('Location: index.php');
            echo "user bestaat niet";
            exit;
        }
}
}


?>

<html>
<head>
<title>Inloggen</title>
</head>
<body>
<form method="POST">
<?php if(isset($username) == TRUE){ echo $username; }else{echo "username";}?>: <input type="text" name="username"><br>
<?php if(isset($password) == TRUE){ echo $password; }else{echo "password";}?>: <input type="password" name="password"><br>
<input type="submit" value="<?php echo "login " ?>"><br>
</form>
</body>
</html>
[/code/
 
Dos Moonen

Dos Moonen

27/09/2014 19:24:25
Quote Anchor link
Hij snapt het blijkbaar ook niet helemaal.

password_hash() is op het moment van schrijven een wrapper om de crypt() functie handige defaults. Dit komt omdat de enige mode die er nu voor bestaat PASSWORD_BCRYPT is. In de toekomstige PHP versies kunnen er nieuwe modi bij komen en kan de default ook veranderen.

password_hash() heeft drie parameters, waarvan maar één verplicht is.
- het wachtwoord
- optioneel: de modus
- optioneel: modus specifieke opties

De standaard modus is op het moment de enige modus: PASSWORD_BCRYPT.
De opties voor de modus PASSWORD_BCRYPT zijn de 'cost' en de 'salt'.

De cost is een waarde van 4 tot en met 31. 2 to de macht 'cost' is het aantal hash iteraties dat wordt gedaan. Stel dit zo in dat het 100-300 milliseconden duurt voor het hashen van een wachtwoord. Dat is snel genoeg voor één succesvolle login, maar traag genoeg om (offline) bruteforce aanvallen miljarden euro's te laten kosten en je dus de user de schuld kan geven omdat het een slecht wachtwoord heeft gekozen als het gekraakt wordt.

De salt wil je eigenlijk nooit zelf instellen, de standaard manier genereert die namelijk op een veilige manier. Don't try this at home, unless you are an expert.
De bedoeling van een salt is om te zorgen dat wanneer gebruikers het zelfde wachtwoord te hebben ze niet ook nog eens de zelfde hash hebben. Salts horen dus uniek te zijn. Je zou dit in theorie kunnen forceren door zelf salt in te stellen maar in de praktijk is dit het niet waard.

Doordat salts dus telkens gegenereerd worden zal er dus telkens een nieuwe hash gegenereerd worden, ook al hash je telkens het zelfde wachtwoord.
Maar je hebt natuurlijk wel de originele salt nodig om er achter te komen of het ingevoerde wachtwoord de zelfde hash oplevert. Dat is de reden dat de salt in de hash verwerkt zit, net als de cost aangezien deze ook invloeg heeft op de uiteindelijke hash.

Dus het resultaat van bcrypt is eigenlijk geen hash omdat de hash maar een deel is van het resultaat.
Een username en wachtwoord is dus genoeg input van de gebruiker om te controleren of de gebruiker wel is wie hij/zij zegt dat hij is:
1) Probeer het resultaat van password_hash() dat is opgeslagen in dat database op te halen met een query waar de username in verwerkt is.
2) Als er geen user met die username gevonden is weergeef je een error.
3) Als er wel een user is met die username heb je dus je password_hash() resultaat dat de cost, salt en hash bevat.
4) Voer password_verify() de door de gebruiker opgegeven password en het password_hash() resultaat.
5) Weergeef een error als het resultaat van password_verify() FALSE is.
6) Log de gebruiker in als het resultaat van password_verify() TRUE is.


Wat er dus fout is aan het bovenstaande script is dat de query kijkt of het wachtwoord '1' is. Haal alles vanaf 'AND'. LIMIT 1 mag op zich blijven.
Er is geen if waar je controleert wat het resultaat van password_verify($POST['password'], $row['password']) is.

Voor de rest kunnen er nog dingen netter:
- geen star-select, selecteer alleen het veld password.
- gebruik op regels 4 en 7 !isset($POST['blabla']) en niet $POST['blabla'] == NULL
- een exit na regel 26.
- regels 43 en 44 zijn alleen om te testen neem ik aan? Het wachtwoord in HTML proberen te zetten is geen goed idee namelijk. Sowieso hoort heel die $password variabele weg te kunnen.
 

Pagina: « vorige 1 2 3 volgende »



Overzicht Reageren

 
 

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.