Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

hashed wachtwoord in mySQL via PHP

Pagina: 1
Acties:
  • 312 views

  • Sh1fty88
  • Registratie: Maart 2008
  • Laatst online: 21-11 17:28
Beste,

Ik heb een simpele site gemaakt met een PHP scriptje om accounts aan te maken.
Echter worden de wachtwoorden in MySQL als hash opgeslagen.

Als ik via de site een account aanmaak komt dit wachtwoord er als plain tekst in met als gevolg
dat dit wachtwoord niet juist gebruikt kan worden.

hoe kan ik deze via het script als hash opslaan in de database?

Ik heb helaas nog erg weinig kennis hierin en hetgeen wat ik van internet geplukt heb werkt niet :o

Het basis script:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 <?php
 $con=mysqli_connect("IP Adres","naam","wachtwoord","database");
 // Check connection
 if (mysqli_connect_errno())
   {
   echo "Failed to connect to MySQL: " . mysqli_connect_error();
   }
 
$sql="INSERT INTO account (username, sha_pass_hash)
 VALUES
 ('$_POST[account]','$_POST[pass]')";
 
if (!mysqli_query($con,$sql))
   {
   die('Error: ' . mysqli_error());
   }
 echo "1 record added";
 
mysqli_close($con);
 ?> 


Mijn dank is groot!

Groetjes!

[ Voor 0% gewijzigd door BtM909 op 06-03-2013 21:43 ]


  • wjvds
  • Registratie: Mei 2012
  • Laatst online: 19-11 05:21
Als je het tussen code tags zet, leest het iets makkelijker. Maar als je kijkt naar je SQL query (de waarde van $sql), dan zie je toch dat $_POST[pass] meteen erin gezet wordt, zonder dat er iets van een hash gemaakt wordt? Kijk bijvoorbeeld eens naar http://php.net/manual/en/function.crypt.php voor een goede hashfunctie, en laat de waarde van $_POST['pass'] daar eerst doorheen gaan voordat je een password in de database stopt.

  • Sh1fty88
  • Registratie: Maart 2008
  • Laatst online: 21-11 17:28
bedankt voor de link, maar ik heb werkelijk geen flauw idee waar ik moet beginnen.

Heb ik iets aan mijn eigen script als ik dit hashed op wil slaan?

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 23:05
Ja, dat zegt wjvds toch al? Die geeft je precies de juiste aanwijzing om het passwoord eventueel hashed op te slaan. Let overigens wel op dat je nu ook vatbaar bent voor andere beveiligingsproblemen waaronder SQL Injection.

Zelf zou ik eerder gebruik proberen te maken van een bibliotheek zoals PDO. Deze geeft je out-of-the-box al wat meer veiligheid dan PHP's MySQL of MySQLi.

  • Beatboxx
  • Registratie: April 2010
  • Laatst online: 26-10-2022

Beatboxx

Certified n00b

PHP:
1
2
3
4
$pass = $_POST['password'];
$hash = crypt($password);

// $hash in je db inserten

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Unslaught schreef op woensdag 06 maart 2013 @ 19:50:

Ik heb helaas nog erg weinig kennis hierin en hetgeen wat ik van internet geplukt heb werkt niet :o
Dan wordt het helaas toch echt tijd dat je je eerst een beetje gaat verdiepen in de taal. Helaas (of gelukkig ;)) is GoT niet een plek waar je je vraag kan dumpen en wachten op een antwoord. Het is de bedoeling dat je zelfinzet toont en op z'n minst zelf de eerste verdieping hebt gedaan.

Met simpele Google kreten heb ik kant-en-klare voorbeelden gevonden die je 1 op 1 kan overnemen om het werkend te krijgen.

Kijk naar de voorbeelden hier, zoek de functies op in het zoekveld op http://www.php.net/manual/en/index.php en koop desnoods een PHP voor beginnersboek!

Succes met je zoektocht verder; ik ga dit topic sluiten, want het voldoet helaas niet aan 't niveau wat we verwachten. Mocht je straks weer vastlopen, plaats je PHP / MySQL topic dan in het juiste subforum: Programming en lees eerst Devschuur® Beleid en Programming Beleid goed door.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1

Dit topic is gesloten.