Unieke code generator

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Pagina: « vorige 1 2 3 4 volgende »

Eric Cartman

Eric Cartman

23/10/2005 12:49:00
Quote Anchor link
Dat kan ook jah... Alleen, als de code als activatie-code moet dienen, zou ik het wel zo doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$username
= "Jip";
$password = "007pass"; // voorbeeld...

$codeuser = md5(sha1($username));
$codepass = md5(sha1($password));

echo $codeuser.$codepass;
?>
 
PHP hulp

PHP hulp

16/11/2024 09:35:52
 
Jan Koehoorn

Jan Koehoorn

23/10/2005 12:52:00
Quote Anchor link
@ Jip: wat is de reden voor zowel sha1 als md5?
 
Hellolo

Hellolo

23/10/2005 12:56:00
Quote Anchor link
Voor mijn ledensystemen gebruik doe ik meestal

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$hash
md5($gebruiker.$_SERVER['REMOTE_ADDR']); // In $gebruiker staat dan de gebruikersnaam
echo $unieke_code = substr($hash, 0, 6);
?>
 
Eric Cartman

Eric Cartman

23/10/2005 12:56:00
Quote Anchor link
Het zou kunnen dat de mail wordt onderschept en er een scriptkiddie denkt: "Hey, laat ik mijn brute-force programma er 's op los". Dan kan het wachtwoord gevonden worden. Daarom codeer ik wachtwoorden ook altijd twee keer met md5.
Laten we dus zeggen, gewoon wat extra beveiliging.
 
Jan Koehoorn

Jan Koehoorn

23/10/2005 13:03:00
Quote Anchor link
@ Hellolo: dat is natuurlijk ook geen waterdichte methode voor een unieke code. Je hebt dan 16777216 mogelijkheden en dat is voor de meeste systemen wel genoeg ;-)

@ Jip: ik wist niet dat er programma's waren die md5 konden kraken?
 
Hellolo

Hellolo

23/10/2005 13:07:00
Quote Anchor link
Ik kwam een programma tegen (dacht dat het iets van Cain heette) en die probeerde net zolang md5() hashes uit totdat hij er een had gevonden die hetzelfde was als de ge-md5()de hash die je invoerde.

md5() is niet te kraken, omdat het gaat met berekeningen, afrondingen e.d., dus wellicht zijn er 2 wachtwoorden die hetzelfde resultaat weergeven als ze ge-md5()t zijn.
 
Jan Koehoorn

Jan Koehoorn

23/10/2005 13:12:00
Quote Anchor link
Hellolo:
Ik kwam een programma tegen (dacht dat het iets van Cain heette) en die probeerde net zolang md5() hashes uit totdat hij er een had gevonden die hetzelfde was als de ge-md5()de hash die je invoerde.


Ja, dat is inderdaad brute-force. Dan kraak je dus niet het md5 algoritme zèlf, maar je voert een functie net zo lang verschillende waarden tot je hetzelfde resultaat hebt. Dan ben je volgens mij toch wel een tijdje bezig, want een string van 32 hexadecimale tekens heeft 3,4028236692093846346337460743177e+38 mogelijkheden ;-)
 
Jelmer -

Jelmer -

23/10/2005 13:17:00
Quote Anchor link
Daarom is de amerikaanse regering ook finansier aan verschillende onderzoekers die onderzoek doen naar de quantum computer. Die zou in theorie al die mogelijkheden niet een voor een af hoeven te gaan, maar ze allemaal tegelijkertijd kunnen beredeneren.

Maar tot nu toe zijn ze nog bezig met het in bedwang houden van 1 'bit' (quantumdeeltje), dus daar gaat nog een paar jaar overheen :)
 
Arend a

Arend a

23/10/2005 13:18:00
Quote Anchor link
Ik denk dat je eerste idee van "Code-maken -> kijken of hij niet al bestaat -> ja/nee -> nog een keer wel het netste is. Als het te langszaam wordt gebruik je te weinig karakters en is de kans te groot dat er een code gemaakt wordt die al bestaat.

Een md5() van de datetime zou natuurlijk ook kunnen volstaan.
 
Eric Cartman

Eric Cartman

23/10/2005 13:50:00
Quote Anchor link
@Jan Koehoorn:
Op http://www.sitemasters.be had ik een scriptje gevonden dat woorden kan ontcijferen die md5-gecodeerd zijn. Ik heb dit scriptje aangepast, en hier kun je zien wat het doet. Het duurt wel land, maar neem bijvoorbeeld het woordje "en". Wedden dat hij het terugcodeerd..?

--edit--
Hij kan woorden van vier letters en korter alleen ontcijferen.
Gewijzigd op 23/10/2005 14:09:00 door Eric Cartman
 
Willem vp

Willem vp

24/10/2005 09:37:00
Quote Anchor link
@Jip:

Dat script decodeert niet, maar codeert gewoon brute-force alle mogelijke combinaties. En, zoals Jan al zei, dat is niet voor het avondeten klaar ;-)
 
Jan Koehoorn

Jan Koehoorn

24/10/2005 09:41:00
Quote Anchor link
Toch wel leuke info allemaal! Bij een inlogsysteem moet je dus geen korte wachtwoorden toestaan.

edit: ik heb de broncode van dat brute force script even bekeken, maar hij probeert alleen met combinatie van alphanumerieke tekens, terwijl je volgens mij nog veel meer tekens aan een md5 kunt voeren.

En inderdaad, een woordje van twee tekens heeft ie zo, maar een woord van zes tekens dat trekt ie niet.
Gewijzigd op 24/10/2005 09:46:00 door Jan Koehoorn
 
Arend a

Arend a

24/10/2005 11:25:00
Quote Anchor link
Let wel: als er gedecode wordt is er al iets fundamenteel mis: dan is je database al ergens ten prooi gevallen aan een hacker.
 
Thijs X

Thijs X

24/10/2005 12:00:00
Quote Anchor link
Zon brute force script kwam ik laatst ook ergens tegen. Daarom hash ik altijd met een functie met verschillende dingen 8er elkaar dat is nooit te achterhalen:

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
<?
// Super Hash
function hash($input)
{

    $input = md5($input);
    $input = crc32($input);
    $input = sha1($input);
    $input = base64_encode($input);
    $input = md5($input);
    $input = crypt($input, "thijs");
    $input = sha1($input);
    $input = base64_encode($input);
    $input = md5($input);
    return $input;
}

?>


Edit:
http://www.webmastercity.nl/forum/viewtopic.php?t=12283
Gewijzigd op 24/10/2005 12:03:00 door Thijs X
 
Arend a

Arend a

24/10/2005 12:17:00
Quote Anchor link
Je bedoeld // Super ProcessorVreetHash?
 
Thijs X

Thijs X

24/10/2005 12:19:00
Quote Anchor link
ja die ja:P
 
Willem vp

Willem vp

24/10/2005 13:17:00
Quote Anchor link
@thijs:

Door je input door meerdere hash-functies te halen maak je de output niet veiliger. Integendeel: het wordt zelfs gemakkelijker om je input te kraken.

Er zijn verschillende dingen fundamenteel mis met je gedachtengang. Om te beginnen het gebruik van crc32(). CRC-functies zijn niet gebouwd op databeveiliging en dus relatief gemakkelijk te kraken.

Vervolgens crypt(). Aangenomen dat in jouw geval de standaard Unix-crypt wordt gebruikt, kijkt die alleen naar de eerste 8 karakters van je input. Je gooit dus het grootste deel van je input weg, waardoor je input dus minder gevarieerd wordt, en dus gemakkelijker te kraken.

Ook de hash-functies gooien data weg om te voorkomen dat je de output terug kunt rekenen naar de input. Door de output daarna opnieuw te hashen vergroot je alleen maar de kans op collisions (oftewel: er komen meer input-strings die matchen op je output).

Het veiligst ben je dus door je input niet meer dan 1x te hashen, en dan nog het liefst met sha-1, aangezien md5 uit zichzelf al collision-gevoelig is (en over sha-1 wordt ook getwijfeld, al is dat nog niet bewezen).
 
Thijs X

Thijs X

24/10/2005 13:30:00
Quote Anchor link
Nee dat is niet waar Willem, doordat ik hem als laatst door de md5 haal word hij juist Wel veilig, dan krijg ik weer een 32 lange string eruit die niet de achterhalen is
 
Winston Smith

Winston Smith

24/10/2005 14:37:00
Quote Anchor link
Jip:
Daarom codeer ik wachtwoorden ook altijd twee keer met md5.
Laten we dus zeggen, gewoon wat extra beveiliging.

Volgens mij is het nog niet gezegd: dat heeft geen enkele zin :)
Je krijgt namelijk een hash, ook als je 2 keer md5 eroverheen gooit. Stel dat je 2 keer "karel" emdeevijft, zoals Jan het zo mooi noemt ;)
Dan krijg je een sterk vereenvoudigde output als x1. Ga je bruteforcen dan zal er -op den duur- ook een woord uitkomen wat ge-emdeevijft een hash heeft als x1, bijvoorbeeld "pietje". Dat woord werkt dus net zo goed als wachtwoord bij jouw inlogsysteem oid, als jouw dubbel ge-emdeevijfde "karel".

Het beste wat je imho kan doen, is een wachtwoord md5-en, vervolgens kijken of die hash toevallig niet hetzelfde is als een hash wat in een woordenboek voorkomt. Dat betekent dat je eerst een woordenboek moet omzetten naar de bijbehorende md5-waarden. Dat kost wat tijd, maar die md5-waarden kan je opslaan en - indien er geen match is- imo een goede indicatie voor veiligheid ;)

Overigens was hier, ik herhaal het maar weer even, laatst een erg leuk topic (eigenlijk meerdere) over. We gingen toen proberen een geëmdeevijft wachtwoord te kraken, en uiteindelijk is het gelukt (met tips over de lengte van het woord). Ik zal het nog eens proberen te achterhalen.

Edit: De grote md5-discussie dus. Jan zal geïnteresseerd zijn denk ik :)
Gewijzigd op 24/10/2005 14:42:00 door Winston Smith
 
Jan Koehoorn

Jan Koehoorn

24/10/2005 14:46:00
Quote Anchor link
Ik heb ooit een boek gehad, dat heette volgens mij
Algorithms in C++. Daar stond een leuk hoofdstuk over beveiliging in.

Ik denk dat het ook nogal uitmaakt #wat# je beveiligen wilt. Als je een ledensysteem voor de plaatselijke postduivenclub wilt maken, hoeft het niet van hetzelfde niveau te zijn dan wanneer je iets moet maken voor de RaboBank, zullen we maar zeggen.
Gewijzigd op 24/10/2005 14:47:00 door Jan Koehoorn
 

Pagina: « vorige 1 2 3 4 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.