Goededag PHPHulpers,

Zoals de titel al aangeeft is het mogelijk om een gehashed password te echoen?
ik heb geen idee hoe dit moet. Ik heb het al gegoogled en dan kom ik op password_verify maar dat is volgens mij alleen om in te loggen zodra er iets gepost word en niet om te echoen.

Kan iemand mij uitleggen hoe ik dit wil kan doen?

Mvg,

Nick
>> Zoals de titel al aangeeft is het mogelijk om een gehashed password te echoen?

Ik denk dat je bedoelt of je het originele wachtwoord kunt tonen. Het antwoord is nee.
Wat je wil kan niet, dat is de kracht van hashing. Een betere vraag is waarom je dat zou willen.
ja dat klopt Ozzie dat bedoel ik inderdaad.

Oke dan weet ik genoeg Bedankt!
Tja waarschijnlijk is je vraag goed bedoeld maar het antwoord zou zijn iets als:
<?php
echo $hash;
?>
Dat is natuurlijk niet het antwoord waarop je zit te wachten.

De meeste wachtwoord hashes zijn niet reversible hetgeen wil zeggen dat je van 'Frank' wel '0df02da8548eeef2174c97c2ade67b4c5adc3160' kunt maken maar andersom niet.

Maar misschien is het handig als je je probleem wat meer uitlegt.
@frank ja zo echoen is geen probleem haha, ik moet inderdaad juist andersom van hash naar normale tekst maar dat kan dus niet...
En waarom zou je een paswoord willen uitlezen?
Je kunt bij de hash, en je wil het password weten, neem ik aan. Als je je eigen (admin) password moet recoveren, vervang de hash door een nieuwe hash waarvan je het bijbehorende password wel weet. (Dus een nieuw wachtwoord hashen, en dat wachtwoord op de plaats van het wachtwoord dat je moet hebben plaatsen) Daarbij moet je het hashen eigenlijk door hetzelfde systeem laten doen, omdat er een salting gebruikt kan zijn. (het toevoegen van tekens aan het wachtwoord voor het hashen, zodat er geen standaard hash ontstaat)

Deze truc kan niet bij andere users: ze zullen doorhebben dat hun wachtwoord veranderd is.

Zijn hashes dan niet te kraken? Niet met een formule. Vergelijk het met een sinus of cosinus berekening: als je de output weet, kun je onmogelijk de input raden. Hetzelfde met restwaarde berekeningen: neem een getal in gedachte (tussen de 100 en de 999), en onthoud de rest bij een deling door 7. Dat getal is niet meer te herleiden naar het getal wat je in je hoofd had.

Een hash berekening is dus een soort controlegetal, en het is niet ondenkbaar dat er in theorie meerdere passwords zijn met dezelfde hash. Overigens is de berekening zo gekozen dat het veranderen van 1 letter in een password van 20 tekens tot een totaal verschillende hash leidt: niet één teken is gelijk... En bij het inloggen op een site zou het dus in theorie ook kunnen dat een ander password met dezelfde hash ook toegang biedt. Maar die kans is bijna net zo groot als zes keer de staatsloterij in een jaar winnen.

Een inlogfunctie genereert dus bij het inschrijven de hash van het password, en onthoudt deze. Bij een inlogpoging wordt hetzelfde trucje gedaan, waarna de hash vergeleken wordt met een opgeslagen hash. Op deze manier kan je op een veilige website (zonder overname users-sessie door admin) een goede logging bij houden: niemand kan elkaars rol overnemen, zelfs als hij toegang heeft tot de hashes. Je zult immers het wachtwoord moeten veranderen om je voor te doen als iemand anders, en dat gaat die persoon merken.

Maar zijn hashed helemaal onkraakbaar? Dat hangt er vanaf. De hash van "Welkom123" of "12345" of "datraadjenooit" is op heel veel servers aanwezig. In tegenstelling tot "*us1&*Skj09aUY". Er bestaan tabellen van veelvoorkomende wachtwoorden en hashes (zei iemand rainbow?) en websites als hashkiller. Deze vormen gelijk het bewijs dat een zwak wachtwoord geen goed idee is.
Rainbow tables gaan hier niet werken. Omdat er "zout" wordt toegevoegd zal hetzelfde wachtwoord (zonder kennis van het gebruikte "zout") steeds een andere hash genereren. Alleen als je inderdaad een "vrij standaard" wachtwoord hebt zou je nog een "woordenboek aanval" (= alle "bekende" wachtwoorden proberen) kunnen doen. Brute-force (= alle combinaties van alle karakters proberen) is niet te doen.
Rob Doemaarwat op 25/10/2017 07:53:04

Rainbow tables gaan hier niet werken. Omdat er "zout" wordt toegevoegd zal hetzelfde wachtwoord (zonder kennis van het gebruikte "zout") steeds een andere hash genereren. Alleen als je inderdaad een "vrij standaard" wachtwoord hebt zou je nog een "woordenboek aanval" (= alle "bekende" wachtwoorden proberen) kunnen doen. Brute-force (= alle combinaties van alle karakters proberen) is niet te doen.


Ehhh... Waar lees jij dat? Ik zie in de info van de TS nergens een aanwijzing dat salting speelt.. En mocht hij wel gesalte hashes hebben: daar waarschuw ik in mijn post zelf ook al voor....

Reageren