help blowfish

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

(Junior) Back-end Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Altijd al willen werken bij een organisatie, die maatwerk applicaties bouwt, die echt impact hebben in de maatschappij? Dit is je kans. Voor een kleine organisatie in de regio van Eindhoven ben ik op zoek naar een C# Ontwikkelaar. Jij gaat aan de slag met de ontwikkeling van maatwerk software en applicaties. Deze organisatie werkt voor grote organisaties in Nederland, maar ook voor het MKB. De projecten waar je aan gaat werken zijn erg divers, waardoor je werk uitdagend blijft en je erg veel kan leren. Verder ga je aan

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 »

API Developer Red Hat Fuse

Dit ga je doen Als API Developer zal je verantwoordelijk zijn voor het: het maken van API's en het correct laten draaien van de API's op het platform. Hierdoor kom je in aanraking met Red Hat Fuse, Springt Boot, 3Scale, Red Hat SSO, Openshift en Azure DevOps; zorgen voor de kwaliteit van de ontwikkeling, integratie en prestaties van de API's; zorgen voor een stabiel integratieplatform. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap dat hoofdzakelijk op OpenShift, Azure en

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op de functionele aspecten, zodat

Bekijk vacature »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

Junior Front-End Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale oplossingen van Coolblue. Wat doe je als Junior Front-End Developer bij Coolblue? Als Junior Front-End Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen. Op dat moment komt je wil om te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te maken. Je sterk analytisch vermogen komt dan goed van pas! Ook Junior Front-End Developer worden bij Coolblue?

Bekijk vacature »

Robot Programmeur

Een verantwoordelijke baan met leuke uitdagingen. Heb jij ervaring met het programmeren van robots? Kan jij goed samenwerken met collega's die verschillende specialisaties hebben? Ben je oplossingsgericht, analytisch en flexibel? Ga dan aan de slag als Robot Programmeur bij Gibas in Nijkerk! Als Robot Programmeur kom je te werken bij Gibas. Dat betekent dat je gegarandeerd meewerkt aan unieke oplossingen in productieprocessen. Bij elk project moet er opnieuw geëngineerd en geprogrammeerd worden. Dat maakt jouw werk uitdagend! Voordat je robots gaat programmeren komt er het volgende bij kijken: De opdracht gaat van de afdeling Sales naar de afdeling Operations door

Bekijk vacature »

Functioneel Applicatiebeheerder

Wij van CNB zijn op zoek naar een leergierige Functioneel Applicatiebeheerder CNB is de grootste dienstverlener in de markt van bloembollen en vaste planten. In deze markt verricht CNB de volgende diensten: bemiddeling, veilen en het koelen en prepareren van bloembollen. Vanuit ons hoofdkantoor in Lisse werken bijna 100 collega’s dag in dag uit aan de bemiddeling van bloembollen. In Bovenkarspel vindt het koelen en prepareren van de bloembollen plaats. Wij zijn op zoek naar een enthousiaste Functioneel Applicatiebeheerder die naast een applicatie, ook sfeer kan bouwen! Jij: Vindt het leuk om binnen een klein IT-team aan de slag te

Bekijk vacature »

Front-end Developer

Dit ga je doen Doorontwikkelen van software; Ontwikkelen en testen van nieuwe functionaliteiten; Implementaties van nieuwe functionaliteiten en updates; Verzorgen van technische migraties naar nieuwe frameworks; Verwerken van incidenten. Hier ga je werken Onze klant, gevestigd in de regio Amsterdam, draagt bij aan het verbeteren van de veiligheid en efficiëntie van de Nederlandse infrastructuur door het ontwikkelen van afgemeten software oplossingen. Zo passen zij location intelligence toe om onderhoud en reparaties efficiënt te laten verlopen. Verder zorgen deze systemen dat incidenten zo snel mogelijk worden opgelost. Als Front-end Developer ben jij samen met je team betrokken met het (door)ontwikkelen van

Bekijk vacature »

Ervaren Magento developer gezocht!

Functie Je komt te werken in een zelfsturend team waarin vertrouwen voorop staat en inbreng en ideeën worden gewaardeerd. Ook staat innovatie centraal. Ze bieden jou de mogelijkheid om jezelf door te ontwikkelen. Denk hierbij aan cursussen en een persoonlijk ontwikkelplan. Je komt terecht in het team van momenteel 4 (ervaren) collega’s en zal meewerken aan de doorontwikkeling en nieuwbouw van de Magento platformen van meerdere opdrachtgevers volgens Agile/Scrum. Denk hierbij aan nieuwe functionaliteiten, UX en koppelingen met verschillende back-end systemen. Als ervaren developer zul je hiernaast ook andere developers assisteren en waar nodig de leiding nemen in het project.

Bekijk vacature »

SAP HANA Cloud Application Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12662 Introductie HANA Cloud Application Developer at a High Tech company. The company is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. This role is situated in the Big Data Analytics (BDA) Domain. The teams have mixture of young talent and senior specialists and have a

Bekijk vacature »

PHP Developer Symfony

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail. Hier ga je werken Als PHP Developer kom je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development teams welke ieder verantwoordelijk zijn voor hun 'eigen' klanten. Jouw team bestaat uit 6 backend

Bekijk vacature »

Infrastructure Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12945 Introductie Our client is one of the most innovative companies within the Netherlands. Currently we are looking for an Infrastructure Platform Engineer. Within this role you will be developing the infrastructure. Functieomschrijving Within this role you are responsible in the development of our distributed data and compute platform infrastructure. You will design, develop and implement new features and fixes. Next to this you will integrate and configurate other packages that supports the development of tuning applications within the organisation. You will support customer sites remotely. Design and implement the

Bekijk vacature »

Low Code Developer voor o.a. overheidsprojecten!

Bedrijfsomschrijving Wil jij ook behoren tot de specialist in Low Code? Dan zou ik zeker aanraden om verder te lezen. Deze organisatie is ooit opgericht door twee studenten en is inmiddels uitgegroeid tot een serieuze werkgever met een groot aanzien op Low Code projecten. De sfeer is echter niet veranderd, er heerst een informele sfeer met een open deuren beleid, en hierin mag de eigen bar natuurlijk niet ontbreken. Momenteel maakt deze organisatie een flinke groei door en hier kan jij natuurlijk niet bij ontbreken. Daarom ben ik op zoek naar Low Code Developers met een degelijke technische achtergrond. Kennis

Bekijk vacature »

Senior Front-end Developer

Dit ga je doen Met behulp van diverse programmeertalen ontwikkelen van Front-end software; Het begeleiden van het front-end team; Het oplossen van incidenten; Het bijhouden van een backlog; Je hebt een actieve bijdrage in de wekelijkse overleggen met de omliggende teams; Je houdt trends bij en adviseert het management hierover waar nodig; Helder communiceren met de stakeholders om hen zo mee te nemen in projecten en laten inzien wat de duur en toegevoegde waarde van bepaalde projecten is. Hier ga je werken Deze organisatie heeft circa 40 miljoen bezoekers per maand en heeft innovatie hoog in het vaandel staan. Het

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 18:03:51
 
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.