md5()
codeer een string
Zoals in de reacties al is gezegd kan er beter gebruik worden gemaakt van de functie sha1. Om het nog veiliger te maken kan je eventueel salt en pepper gebruiken. Voor meer informatie over dit onderwerp kan je google raadplegen: klik
[/modedit]
Gesponsorde koppelingen
Inhoudsopgave
73 reacties op 'md5()'
Gesponsorde koppelingen
Quote:
jah right, maar zowalsik al zei, heel leuk een wachtwoord gecodeerd opslaan, maar als je het daarna zelf ook niet meer kan lezen heb je er dus niets aan
Ik zou anders n?t wel je wachtwoorden gecodeerd opslaan... Hallow....
Als ze je db hacken, zien ze alles? Zo moet het dus NIET....
Edit:
En so what als je het niet meer kan lezen? Daarvoor dient de 'Edit' functie...
Je kan je wachtwoord veld nog altijd resetten dan....
Ja.. je kan md5 brute forcen, het kost ws, of heel lang of je pc. Ik vind md5 veilig genoeg. stel dat iemand je db hackt dan is tie nog per wachtwoord een week of 2 bezig. en tegen die tijd mag je het toch wel door gehad hebben. en als ze je db hacken kunnen ze altijd het wachtwoord veld aanpassen. dus dit is echt wel veilig genoeg :)
md5 is met goed gebruik redelijk veilig. Je moet alleen wel zorgen dat wachtwoorden voldoende lengte hebben. Een wachtwoord van slechts 4 posities is binnen een seconde gekraakt, eentje van 6 posities duurt bij mij zo'n 8 minuten.
Hierbij ga ik uit van de code md5($wachtwoord)
Een betere oplossing is het volgende:
$geheimestring = "Een heleboel onzin om de md5 goed te versleutelen #%&8475.,";
md5($wachtwoord.$geheimestring);
Wanneer je nu bruteforce loslaat op een hash, ben je dagen, weken, misschien wel maanden bezig om deze te kraken.
Uiteraard zet je de $geheimestring buiten de webdirectory...
Hierbij ga ik uit van de code md5($wachtwoord)
Een betere oplossing is het volgende:
$geheimestring = "Een heleboel onzin om de md5 goed te versleutelen #%&8475.,";
md5($wachtwoord.$geheimestring);
Wanneer je nu bruteforce loslaat op een hash, ben je dagen, weken, misschien wel maanden bezig om deze te kraken.
Uiteraard zet je de $geheimestring buiten de webdirectory...
4 tekens
db47018d8c5775434c9b8d2c2301d139
Dit moet zijn: S0ny
Duurde 1 a 2 seconden. Iets langer dan ik eerder had aangegeven, je hebt namelijk zowel hoofdletters als kleine letters gebruikt. Dat maakt een wachtwoord sterker.
Het andere wachtwoord komt eraan, maar wanneer je daar ook hoofd- en kleine letters hebt gebruikt, gaat het langer duren.
Je hoort van mij!
Edit: De uitdaging van die 8 minuten gaat met het wachtwoord van 6 tekens dat jij hebt opgegeven niet lukken.... Volgens de tool gaat het nog zeker 4 uur duren en dan heb ik nog geen zekerheid. Mocht je ook nog vreemde tekens als &$# gebruikt hebben, moet ik nog een rondje draaien.
Het wachtwoord van 4 tekens is wel gelukt en ik hoop dat je daarmee wel begrijpt dat het belangrijk is om lange strings te gebruiken met zoveel mogelijk tekens. Het probleem is alleen dat bezoekers altijd eenvoudige en te korte wachtwoorden opgeven.
Ps. de tool die ik gebruik kun je downloaden op http://www.oxid.it/cain.html
db47018d8c5775434c9b8d2c2301d139
Dit moet zijn: S0ny
Duurde 1 a 2 seconden. Iets langer dan ik eerder had aangegeven, je hebt namelijk zowel hoofdletters als kleine letters gebruikt. Dat maakt een wachtwoord sterker.
Het andere wachtwoord komt eraan, maar wanneer je daar ook hoofd- en kleine letters hebt gebruikt, gaat het langer duren.
Je hoort van mij!
Edit: De uitdaging van die 8 minuten gaat met het wachtwoord van 6 tekens dat jij hebt opgegeven niet lukken.... Volgens de tool gaat het nog zeker 4 uur duren en dan heb ik nog geen zekerheid. Mocht je ook nog vreemde tekens als &$# gebruikt hebben, moet ik nog een rondje draaien.
Het wachtwoord van 4 tekens is wel gelukt en ik hoop dat je daarmee wel begrijpt dat het belangrijk is om lange strings te gebruiken met zoveel mogelijk tekens. Het probleem is alleen dat bezoekers altijd eenvoudige en te korte wachtwoorden opgeven.
Ps. de tool die ik gebruik kun je downloaden op http://www.oxid.it/cain.html
@Elwin:
Ik had je nog een wachtwoord beloofd: v3nu$
Dit is wat Cain er van maakt. Het duurde in dit geval zo'n 20 minuten, ik heb het niet goed bijgehouden, te veel afleiding.
Het wachtwoord is kort, dat is de zwakte, maar je maakt wel gebruik van diverse soorten tekens. Dat maakt het weer ietsje sterker. Wanneer je Cain start, wordt er ook een tijd geschat hoelang het duurt voordat deze gekraakt is, in dit geval (lengte 5 tekens) en maximale sterkte, was dat zo'n 30 minuten. Je kunt in de tool aangeven welke tekens gebruikt mogen worden om de hash te kraken en welke lengte (min/max) het wachtwoord heeft. In alle gevallen heb ik jouw informatie over de lengte van het wachtwoord gebruikt. Wanneer je geen idee hebt over de lengte en sterkte van een wachtwoord en je moet alle opties langslopen, dan kan het jaren duren voordat je het wachtwoord gekraakt hebt.
In principe draait het om de lengte en de sterkte van een wachtwoord, maar je moet de rekenkracht van hackingtools niet vergeten. Volgens mij maakt de gebruikte hashingmethode niet zo heel erg veel uit (md5, sha1, etc), maar de specialisten kunnen hier meer over vertellen.
Ik had je nog een wachtwoord beloofd: v3nu$
Dit is wat Cain er van maakt. Het duurde in dit geval zo'n 20 minuten, ik heb het niet goed bijgehouden, te veel afleiding.
Het wachtwoord is kort, dat is de zwakte, maar je maakt wel gebruik van diverse soorten tekens. Dat maakt het weer ietsje sterker. Wanneer je Cain start, wordt er ook een tijd geschat hoelang het duurt voordat deze gekraakt is, in dit geval (lengte 5 tekens) en maximale sterkte, was dat zo'n 30 minuten. Je kunt in de tool aangeven welke tekens gebruikt mogen worden om de hash te kraken en welke lengte (min/max) het wachtwoord heeft. In alle gevallen heb ik jouw informatie over de lengte van het wachtwoord gebruikt. Wanneer je geen idee hebt over de lengte en sterkte van een wachtwoord en je moet alle opties langslopen, dan kan het jaren duren voordat je het wachtwoord gekraakt hebt.
In principe draait het om de lengte en de sterkte van een wachtwoord, maar je moet de rekenkracht van hackingtools niet vergeten. Volgens mij maakt de gebruikte hashingmethode niet zo heel erg veel uit (md5, sha1, etc), maar de specialisten kunnen hier meer over vertellen.
ook even leuk, past mooi bij het onderwerp
artikel over quantumcomputer hccnet
PS: mijn md5 repliceer je nooit een keer ^^,
artikel over quantumcomputer hccnet
PS: mijn md5 repliceer je nooit een keer ^^,
Ok?... in navolging van bovenstaande reacties over dat de complexheid van een wachtwoord goed moet zijn heb ik een functie geschreven die daarbij helpt.
Elwin
Elwin
@Rank:
Ga naar het tabblad Crack, aan de linkerzijde krijg je dan diverse versleutel-methodes te zien, waaronder MD5-hashes. Klik hierop en linksboven wordt een grote blauwe + zichtbaar. Wanneer je daarop klikt krijg je een popup waar je de md5-hash kunt invoeren. De hash wordt dan in een lijst gezet. Met de rechter muisknop kun je dan de gewenste hack-aanpak selecteren. De rest spreekt voor zich.
Ik gebruik overigens versie 2.65
Ga naar het tabblad Crack, aan de linkerzijde krijg je dan diverse versleutel-methodes te zien, waaronder MD5-hashes. Klik hierop en linksboven wordt een grote blauwe + zichtbaar. Wanneer je daarop klikt krijg je een popup waar je de md5-hash kunt invoeren. De hash wordt dan in een lijst gezet. Met de rechter muisknop kun je dan de gewenste hack-aanpak selecteren. De rest spreekt voor zich.
Ik gebruik overigens versie 2.65
ik dacht hier ergens iets gezien te hebben over dat md5 ( 36 * 32 ) verschillende reeksen aankan...
dit is dus ONZIN: het is 32 ^ 36 (32 tot de 36e macht) = +- 1,5324955408658888583583470271503e+54
dit, omdat je voor ieder karakter in de md5 hash weer een ander karakter anders kan zijn, dus niet * maar ^
dit is dus ONZIN: het is 32 ^ 36 (32 tot de 36e macht) = +- 1,5324955408658888583583470271503e+54
dit, omdat je voor ieder karakter in de md5 hash weer een ander karakter anders kan zijn, dus niet * maar ^
@JeXuS
Ik weet niet waar je nu die 36 vandaan haalt, maar dat is ook bull-shit. Zoals al eerder op deze site vermeld (weet helaas alleen niet waar) en zoals ook in de omschrijving van md5() op PHP.net is een md5-string een hexadecimaal nummer. En laat hexa dan voor 16 staan en niet 36.
De tekens in een hexadecimale string kunnen alleen de volgende zijn: 0 1 2 3 4 5 6 7 8 9 A B C D E F.
Elwin
Ik weet niet waar je nu die 36 vandaan haalt, maar dat is ook bull-shit. Zoals al eerder op deze site vermeld (weet helaas alleen niet waar) en zoals ook in de omschrijving van md5() op PHP.net is een md5-string een hexadecimaal nummer. En laat hexa dan voor 16 staan en niet 36.
De tekens in een hexadecimale string kunnen alleen de volgende zijn: 0 1 2 3 4 5 6 7 8 9 A B C D E F.
Elwin
@franks md5 hacks: hoe doe je dat? Kan dat ook op een Mac? Ik wil het wel eens met eigen ogen zien...
md5 hacken?
md5 hacken?
md5 hacken?
md5 hacken?
@Arjan
Om terug te halen kan je altijd een apparte tabel maken waarin die voor een bepaalde user het wachtwoord ongecodeerd (of met een eigen coderings script, die je zo omgedraaid kan laten terugwerken) opslaan voor wanneer een gebruiker zijn wachtwoord is vergeten. (vergeet dan niet om dat deel goed te beveiligen bijvoorbeeld met een geheime vraag script, en sla dan het antwoord wel weer gecodeerd op)
Om terug te halen kan je altijd een apparte tabel maken waarin die voor een bepaalde user het wachtwoord ongecodeerd (of met een eigen coderings script, die je zo omgedraaid kan laten terugwerken) opslaan voor wanneer een gebruiker zijn wachtwoord is vergeten. (vergeet dan niet om dat deel goed te beveiligen bijvoorbeeld met een geheime vraag script, en sla dan het antwoord wel weer gecodeerd op)
als ik het goed begrijp kan ik een database connect dus beter niet in het script zelf zetten.
nu is mijn vraag, is includen dan veiliger? want dan staat het in feiten toch ook in het script. of kan het ook op volgende manier?
$mysql_select_db ="map_x/connect.php ";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $dbpass)))
{
echo "Verbinding met de database mislukt.";
exit();
En md5. ik begrijp dat het een wachtwoorden en dergelijken omzet naar een andere code, maar blijft de invoer dan wel hetzelfde?
en hoef ik het alleen zo als onderstaand voorbeeld te doen?
}
elseif ($_POST['pass'])
{
if (md5($_POST['pass'] == "wachtwoord")
{
?>
nu is mijn vraag, is includen dan veiliger? want dan staat het in feiten toch ook in het script. of kan het ook op volgende manier?
$mysql_select_db ="map_x/connect.php ";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $dbpass)))
{
echo "Verbinding met de database mislukt.";
exit();
En md5. ik begrijp dat het een wachtwoorden en dergelijken omzet naar een andere code, maar blijft de invoer dan wel hetzelfde?
en hoef ik het alleen zo als onderstaand voorbeeld te doen?
}
elseif ($_POST['pass'])
{
if (md5($_POST['pass'] == "wachtwoord")
{
?>
Hoi hoi, nog even als aanvulling..
Ik was zelf met een scriptje bezig, maar de vergelijking deed het steeds niet. Nou kwam ik er toevallig achter door even een echo ($encrypted_password) te gebruiken, dat het niet gelezen kon worden omdat het wachtwoord na encryptie het maximale toegestane karakter in de database overschreed XD
Had ik helemaal niet bij stilgestaan :D mochten mensen daar tegenaan lopen, hou daar ff rekening mee.
Na aanpassing werkt het perfect!
Groetjes
Ik was zelf met een scriptje bezig, maar de vergelijking deed het steeds niet. Nou kwam ik er toevallig achter door even een echo ($encrypted_password) te gebruiken, dat het niet gelezen kon worden omdat het wachtwoord na encryptie het maximale toegestane karakter in de database overschreed XD
Had ik helemaal niet bij stilgestaan :D mochten mensen daar tegenaan lopen, hou daar ff rekening mee.
Na aanpassing werkt het perfect!
Groetjes
@ wout
md5 is niet 'gekraakt' md5 valt te brute force.
jou code is ook te achterhalen.
zo ie zo zou ik jou code niet gebruiken omdat je sha1 als laatste doet en dat geeft en overbodige lange string.
en als je wachtwoorden beter wil beveiligen gebruik dan en salt
try this:
md5 is niet 'gekraakt' md5 valt te brute force.
jou code is ook te achterhalen.
zo ie zo zou ik jou code niet gebruiken omdat je sha1 als laatste doet en dat geeft en overbodige lange string.
en als je wachtwoorden beter wil beveiligen gebruik dan en salt
try this:
Code (php)
1
2
3
4
2
3
4
<?php
$salt = 'pxNg5ODJha5PF6JoqUeYxDA';
$pass = md5(sha1(crc32(md5(base64_decode($pass . $salt)) . $salt)));
?>
$salt = 'pxNg5ODJha5PF6JoqUeYxDA';
$pass = md5(sha1(crc32(md5(base64_decode($pass . $salt)) . $salt)));
?>
Wedde dat je MD5 niet kan decoderen?
Stel, ik heb een wachtwoord van 1000 tekens en daar gooi ik een MD5 functie overheen. Zn output is 32 HEX tekens. Dat is 32x4=128 bits. 128 bits kan maximaal 8 bytes aan data bevatten, en dus maar 8 tekens.
hoe kan je alle 1000 tekens - dus 1000 bytes - kwijt in 8 bytes en vervolgens nog weten wat de originele 1000 bytes waren?
dat is onmogelijk.
MD5 is simpel te vergelijken met de volgende functie:
deze functie voegt per teken om-en-om de ASCII-waarde van iedere letter bij de 'output' door ' ASCII-waarde + OUTPUT ' en 'ASCII-waarde - OUTPUT' om-en-om uit te voeren.
daaruit komt een getal. Dat getal is te vergelijken met een MD5's output: je kan de som niet terug vinden. Je weet niet of er eerst +40 gedaan is en daarna - 30, of dat er eerst +42 gedaan is en daarna -32. Beide hebben dezelfde output, maar een andere input.
De output van MD5 kan dus komen met meerdere 'inputs'. Er zijn in totaal 2^128 = 340.282.366.900.000.000.000.000.000.000.000.000.000 MD5 strings. Veel h?? :P
Stel, ik heb een wachtwoord van 1000 tekens en daar gooi ik een MD5 functie overheen. Zn output is 32 HEX tekens. Dat is 32x4=128 bits. 128 bits kan maximaal 8 bytes aan data bevatten, en dus maar 8 tekens.
hoe kan je alle 1000 tekens - dus 1000 bytes - kwijt in 8 bytes en vervolgens nog weten wat de originele 1000 bytes waren?
dat is onmogelijk.
MD5 is simpel te vergelijken met de volgende functie:
Code (php)
deze functie voegt per teken om-en-om de ASCII-waarde van iedere letter bij de 'output' door ' ASCII-waarde + OUTPUT ' en 'ASCII-waarde - OUTPUT' om-en-om uit te voeren.
daaruit komt een getal. Dat getal is te vergelijken met een MD5's output: je kan de som niet terug vinden. Je weet niet of er eerst +40 gedaan is en daarna - 30, of dat er eerst +42 gedaan is en daarna -32. Beide hebben dezelfde output, maar een andere input.
De output van MD5 kan dus komen met meerdere 'inputs'. Er zijn in totaal 2^128 = 340.282.366.900.000.000.000.000.000.000.000.000.000 MD5 strings. Veel h?? :P
wede dat er GEEN 1 !
gebruiker in jou klanten bestand zit die en wachtwoord heeft die ook maar in de buurt komt van 1000 tekens.
maar je hebt wel gelijk in het fijt dat er na en aantal getallen het niet meer te achterhalen is.
het probleem is alleen dat de meesten mensen de wachtwoord te makkelijk zijn
gebruiker in jou klanten bestand zit die en wachtwoord heeft die ook maar in de buurt komt van 1000 tekens.
maar je hebt wel gelijk in het fijt dat er na en aantal getallen het niet meer te achterhalen is.
het probleem is alleen dat de meesten mensen de wachtwoord te makkelijk zijn
@rvw:
nee, klopt. Maar het was maar een voorbeeld: MD5 is geen compressor met een vinger-afdruk-generator. Je kan niet aan een vinger afdruk zien hoe de originele persoon eruit ziet als politie, dan moet het gevonden vinger afdruk in hun bestand staan. Er is geen 'vinger-afdruk-decoder' voor de politie, en zo is er ook geen vinger-afdruk-decoder voor MD5-vingers. En wat boeit het...
ik ga pas van MD5 af als IEMAND mijn wachtwoord kan kraken!
DIT is mijn ECHTE wachtwoord, gebruikt voor msn, login voor mijn FTP en phpmyadmin en nog veel meer
9412301d3f4e7888557c27db773c0cf9
veel succes met decoderen!
het wachtwoord is 6 tekens lang en is gecodeerd met een enkele MD5 functie in PHP. mijn wachtwoord bevat enkel tekens van 0-9 en a-f. wachtwoord is ooit aangemaakt door een md5 functie met als input een time() functie en die heb ik ingekort met substr(md5(),0,6)
ik zie wel wanneer mijn msn gehackt wordt.
het bijbehoren e-mail adres is tobyhinloopen _ 2 [atje] hotmail.com
nee, klopt. Maar het was maar een voorbeeld: MD5 is geen compressor met een vinger-afdruk-generator. Je kan niet aan een vinger afdruk zien hoe de originele persoon eruit ziet als politie, dan moet het gevonden vinger afdruk in hun bestand staan. Er is geen 'vinger-afdruk-decoder' voor de politie, en zo is er ook geen vinger-afdruk-decoder voor MD5-vingers. En wat boeit het...
ik ga pas van MD5 af als IEMAND mijn wachtwoord kan kraken!
DIT is mijn ECHTE wachtwoord, gebruikt voor msn, login voor mijn FTP en phpmyadmin en nog veel meer
9412301d3f4e7888557c27db773c0cf9
veel succes met decoderen!
het wachtwoord is 6 tekens lang en is gecodeerd met een enkele MD5 functie in PHP. mijn wachtwoord bevat enkel tekens van 0-9 en a-f. wachtwoord is ooit aangemaakt door een md5 functie met als input een time() functie en die heb ik ingekort met substr(md5(),0,6)
ik zie wel wanneer mijn msn gehackt wordt.
het bijbehoren e-mail adres is tobyhinloopen _ 2 [atje] hotmail.com
Ooit eens een bruteforse scriptje gemaakt en dit is het resultaat:
2x uitgevoerd om eventuele dubbele hashes te vermijden..
Code (php)
1
2
3
4
5
2
3
4
5
md5('c04483') = 9412301d3f4e7888557c27db773c0cf9
Gevonden in 15300443 pogingen na 680 seconden.
md5('c04483') = 9412301d3f4e7888557c27db773c0cf9
Gevonden in 7916778 pogingen na 499 seconden.
Gevonden in 15300443 pogingen na 680 seconden.
md5('c04483') = 9412301d3f4e7888557c27db773c0cf9
Gevonden in 7916778 pogingen na 499 seconden.
2x uitgevoerd om eventuele dubbele hashes te vermijden..
Leuk om te zien dat het - nou niet echt geweldig te noemen- artikeltje dat ik 8 jaar (!) geleden heb getypt nog steeds aanwezig is op deze site.
Zoals al aangegeven in de reacties hierboven is md5 niet de veiligste methode die php te bieden heeft. Als je op zoek bent naar een veiligere encryptie is sha1 met een salt inderdaad beter.
Zoals al aangegeven in de reacties hierboven is md5 niet de veiligste methode die php te bieden heeft. Als je op zoek bent naar een veiligere encryptie is sha1 met een salt inderdaad beter.
Even voor de duidelijkheid.
Een md5 wachtwoord kan je niet terugcoderen of zoiets, die tools op google hebben vaak een database met wachtwoorden die van te voren zijn ingevuld. Je kunt een md5 wachtwoord wel bruteforcen of met hulp van rainbow tables. Sha1 is alleen beter beveiligd (ookal kun je dit ook gewoon bruteforcen).
MD5 BRUTEFORCER OUTPUT:
Found string: S0ny
In md5: db47018d8c5775434c9b8d2c2301d139
Time: 27.242166996 seconds.
Calculations: 11147315
Calculations per second: 409192.89
Ik heb trouwens niet nodig hoeveel tekens het moet zijn. Dat maakt niet uit namelijk.
Een md5 wachtwoord kan je niet terugcoderen of zoiets, die tools op google hebben vaak een database met wachtwoorden die van te voren zijn ingevuld. Je kunt een md5 wachtwoord wel bruteforcen of met hulp van rainbow tables. Sha1 is alleen beter beveiligd (ookal kun je dit ook gewoon bruteforcen).
MD5 BRUTEFORCER OUTPUT:
Found string: S0ny
In md5: db47018d8c5775434c9b8d2c2301d139
Time: 27.242166996 seconds.
Calculations: 11147315
Calculations per second: 409192.89
Ik heb trouwens niet nodig hoeveel tekens het moet zijn. Dat maakt niet uit namelijk.
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Web Smile- 10 jaar geleden
- 3.908 x bekeken
- PHP tutorials opties
- PHP functies
- Nieuwste PHP tutorials
- PHP tutorial toevoegen


PHP hulp
0 seconden vanaf nu