Hash

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Matthijs Vos

Matthijs Vos

09/02/2012 21:07:52
Quote Anchor link
Hallo,

Ik weet dat er hier al meerder topic's over zijn maar het is mij nog niet helemaal duidelijk. Wat is nou de beste manier om te hashen? En meerdere hashes over elkaar heen is dat veiliger??

Matthijs
 
PHP hulp

PHP hulp

03/03/2025 19:01:40
 
Jeroen VD

Jeroen VD

09/02/2012 21:12:39
Quote Anchor link
Ik gebruik een sha256 in combinatie met een dynamische salt en een statische pepper. Je kunt dit vaker hashen, hier wordt het veiliger van. Maar het wordt dan natuurlijk wel lastiger
 
Matthijs Vos

Matthijs Vos

09/02/2012 21:16:35
Quote Anchor link
dynamische salt?? ken wel gewoon de crypt($wachtwoord, $salt); maar wat is een dynamische salt dan? En pepper kan je me daar meer info/tut o.i.d van geven?
 
Obelix Idefix

Obelix Idefix

09/02/2012 21:18:14
Quote Anchor link
Ga geen md5 of sha1 vaker hashen bv (md5(md5(md5($wachtwoord))). Hier wordt het onveiliger van.

In je topic http://www.phphulp.nl/php/forum/topic/loginscript-werkt-niet/82539/1/ is al geantwoord. Jeroen geeft het nogmaals aan.

Gebruik Google en je vindt heel veel info over salt en pepper.
Gewijzigd op 09/02/2012 21:19:07 door Obelix Idefix
 
Jeroen VD

Jeroen VD

09/02/2012 21:20:16
Quote Anchor link
Als je een tekenreeks vast opslaat in je script, noem je dat een pepper. En die is statisch, omdat die altijd hetzelfde is. Een dynamische salt is een random gegenereerde tekenreeks, die je apart opslaat in de databe bij het wachtwoord. Deze is voor iedere gebruiker anders, dus dynamisch

Zoals al is aangegeven, zoek eens op google
Gewijzigd op 09/02/2012 21:21:41 door Jeroen VD
 
Matthijs Vos

Matthijs Vos

09/02/2012 21:21:30
Quote Anchor link
Daar staat idd:

Quote:
Gebruik een Salt + Pepper (liefst dynamisch) en een van de sha* decrypt functies.



Sha* is bv hash('sha521', $wachtwoord); of zie ik dat verkeer?

Edit: Oke bedankt jeroen voor je antwoord over salt en pepper, als ik het goed heb is pepper statisch en salt dynamisch en is het verder hetzelfde??
Gewijzigd op 09/02/2012 21:22:28 door Matthijs Vos
 
Jeroen VD

Jeroen VD

09/02/2012 21:23:10
Quote Anchor link
hash('sha256', $wachtwoord . $salt . $pepper)

Ja maar google eens. Dan zie je tig sites hierover
Gewijzigd op 09/02/2012 21:24:10 door Jeroen VD
 
Matthijs Vos

Matthijs Vos

09/02/2012 21:25:56
Quote Anchor link
@jeroen
Oke, en dan staat $salt in je database toch?? (Edit: ga ik even op googlen bedankt)

en op de volgende manier is dat veilig?

$ww1 = mysql_real_escape_string (md5($_POST["password"]));
$ww2 = hash('sha521', '$ww1');
$ww3 = crypt($ww2, '*een woord*');
$ww4 = hash('whirlpool', $ww3);
Gewijzigd op 09/02/2012 21:26:24 door Matthijs Vos
 
Jeroen VD

Jeroen VD

09/02/2012 21:30:07
Quote Anchor link
Nee zoals ik in mijn vorige post deed. Dit is veel te omslachtig. Dus zo:
$ww = hash('sha256', mysql_real_escape_string($_POST['wachtwoord']) . $salt . $pepper)
Gewijzigd op 09/02/2012 21:33:06 door Jeroen VD
 
Matthijs Vos

Matthijs Vos

09/02/2012 21:31:59
Quote Anchor link
oke.. bedankt voor de info, ik ben al ff aan het googlen over salt
 
Jens erd

Jens erd

09/02/2012 21:32:07
Quote Anchor link
Jeroen vd op 09/02/2012 21:20:16:
Als je een tekenreeks vast opslaat in je script, noem je dat een pepper. En die is statisch, omdat die altijd hetzelfde is. Een dynamische salt is een random gegenereerde tekenreeks, die je apart opslaat in de databe bij het wachtwoord. Deze is voor iedere gebruiker anders, dus dynamisch

Zoals al is aangegeven, zoek eens op google


Als je het plain-text opslaat in een database heeft een dynamische salt totaal geen zin.. Als iemand de complete database in handen krijgt ben je nog steeds nergens. Als je het echt dynamisch wil hebben, maak dan gebruik van andere (statische) gegevens van gebruikers, zoals bijvoorbeeld een gehashde registreerdatum. Haal die gegevens op als de gebruiker een gebruikersnaam invult en maak met die gegevens een leuke hash.
Gewijzigd op 09/02/2012 21:33:05 door Jens erd
 
Wouter J

Wouter J

09/02/2012 21:36:16
Quote Anchor link
Salt en pepper is gewoon een leuke benaming. Vaak wordt een salt voor een wachtwoord en een pepper na een wachtwoord. Ik doe vaak iets als dit:

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

$salt
= 'lkhe31245nbioh25'; // een static salt
$pepper = uniqid(); // een dynamische pepper
$ww = sha256($_POST[''password]); // real_escape_string overbodig in combinatie met een decrypter

$ww = $salt.$ww.$pepper; // breng alles bij elkaar en serveer een heel mooi diner

?>


Het best is trouwens gebruiken maken van bcrypt, maar dit is misschien iets te moeilijk.
Gewijzigd op 09/02/2012 21:37:39 door Wouter J
 
Jeroen VD

Jeroen VD

09/02/2012 21:37:53
Quote Anchor link
De salt wordt random gegenereerd, van bv 19 tekens lang, dus die is nog willekeuriger dan een registreerdatum. Het probleem met zon dynamische salt is dat je die ook weer weer moet opvragen. Je bent dus verplicht om het in de db op te slaan. Verder is het wachtwoord nu op 3 plaatsen opgeslagen: bij de gebruiker, in je script en in je db. Weet je ze niet alle drie, zal de hacker voor elke gebruiker een aparte rainbow table moeten maken, wat veel tijd kost
 
Matthijs Vos

Matthijs Vos

09/02/2012 21:42:24
Quote Anchor link
@jeroen
Hoezo is het nu op 3 plekken opgeslagen??

@wouter
Ik ga je methode uitprobeeren, alleen die uniqid() moet die dan niet worden opgeslagen in de db?
 
Jeroen VD

Jeroen VD

09/02/2012 21:50:38
Quote Anchor link
De gebruiker heeft een deel van het wachtwoord, in je script staat een deel, en in je db
 
Matthijs Vos

Matthijs Vos

09/02/2012 21:51:59
Quote Anchor link
@jeroen
oo zo, met de pepper wat hij zelf heeft bedacht en de hashed natuurlijk..
Weet jij hoet dat met de uniqid werkt?
 
Wouter J

Wouter J

09/02/2012 21:54:14
Quote Anchor link
Nee, die hoef je niet op te slaan. Uniqid geeft een timestamp terug (en is dus altijd uniek) van 13 tekens. Je kan dus gewoon 13 tekens van het eind afhalen:
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

$wwUitDB
= $result['password']; // haal de ww uit de database

$wwUitDB = substr($wwUitDB, 16, -13);
// 16 haalt de eerste 16 tekens (dus de salt, in mijn vorige vb is de salt 13 tekens) weg
// -13 haalt de laatste 13 tekens (dus de pepper) weg


if( sha256($_POST['password']) === $wwUitDB )
{

  echo 'ww kloppen';
}


?>
Gewijzigd op 09/02/2012 21:55:06 door Wouter J
 
Matthijs Vos

Matthijs Vos

09/02/2012 21:56:02
Quote Anchor link
@wouter
maar dat weet een hacker dan toch ook?? dus dan versterkt dit alles het helemaal niet
 
Wouter J

Wouter J

09/02/2012 21:57:53
Quote Anchor link
de hacker weet niet dat je een uniqid als pepper gebruikt. Zelfde voor een statische salt, als de hacker je salt weet is het allemaal voor niks...

En een wachtwoord (of een deel ervan) in een sessie zetten is nooit verstandig. Dat kan alleen maar problemen opleveren.
 
Matthijs Vos

Matthijs Vos

09/02/2012 21:59:50
Quote Anchor link
@wouter
maar ik denk dat iedereen dan uniqid gebruikt waardoor een registratie datum coderen me dan weer veilig lijkt of zie ik dat verkeerd?

En waar hebben we het over een deel van je ww in een sessie zetten gehad??
 
Jeroen VD

Jeroen VD

09/02/2012 22:00:52
Quote Anchor link
En zo kun je natuurlijk hysterisch doorgaan met nog meer kruiden, maar volgens mij is het nu wel goed zo
 

Pagina: 1 2 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.