[php]Welke encryptie is dit?

Pagina: 1
Acties:
  • 107 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 3631

Topicstarter
Hallo,

Ik ben bezig met een PHP script dat iets post naar DADAmail (een perl maillist script). Ik probeer het op deze manier omdat mijn perl kunsten niet goed genoeg zijn om zelf aanpassingen daarin te maken.

Het probleem is nu dat ik in dadamail kan inloggen dmv een cookie mee te sturen waarin het password encrypted wordt meegestuurd.

Dit zou voor wachtwoord '123demo' worden: 'a09d762df0fa765ffb6c444183af4dce'. Als ik dit nu probeer te coderen met PHP dmv: crypt('123demo', 'a09d762df0fa765ffb6c444183af4dce'); krijg ik een heel andere, veel kortere string terug. Als ik het dan weer met md5 probeer, krijg ik een variabele die er wel op lijkt, maar net niet hetzelfde is.

Weet iemand misschien wat ik nou fout doe en of ik dit kan oplossen?

Acties:
  • 0 Henk 'm!

  • samo
  • Registratie: Juni 2003
  • Laatst online: 20:37

samo

yo/wassup

is het md5();

edit: ik ben een blinde kip... sorry laat maar... er staat zelfs in de post dat t geen md5 is |:(

[ Voor 44% gewijzigd door samo op 27-06-2006 12:54 ]

Bekend van cmns.nl | ArneCoomans.nl | Het kindertehuis van mijn pa in Ghana


Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Het kan wel md5 zijn, maar dan in combinatie van het wachtwoord met een 'salt'.

Sundown Circus


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 09-06 21:17
Die string komt in ieder geval uit base64_encode().
Trek hem eens door base64_decode() en zie wat de eigenlijk cipher is.

base64 is dus niet de encryptie, puur een methode om te vookomen dat er karakters worden gebruikt welke niet in een cookie mogen worden gebruikt

Acties:
  • 0 Henk 'm!

Anoniem: 3631

Topicstarter
Base64_decode geeft een rare wirwar van tekens terug die iig nergens op slaan. Nog iemand een idee?

Acties:
  • 0 Henk 'm!

  • Appesteijn
  • Registratie: Juni 2001
  • Niet online
Ik weet vrij weinig van php en dus al helemaal niets van de crypt-functie, maar je schrijft dat je het 'weer' met md5 probeert, bedoel je hier dat je een md5-sum van a09d762df0fa765ffb6c444183af4dce neemt en verwacht dat je er 123demo uit krijgt? Dat gaat namelijk niet lukken, want md5 is namelijk one-way. Je zou wel op de 'server' ook een md5 van het wachtwoord kunnen bewaren en deze twee dan vergelijken.

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

base64 kan het niet zijn, want die eindigd altijd op ==

Dat is de basis van encrypten/decrypten

Het is vrijwel zeker een md5, maar waarschijnlijk met een salt, om collisions te voorkomen!

[ Voor 62% gewijzigd door Snake op 28-06-2006 23:28 ]

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • bakkerl
  • Registratie: Augustus 2001
  • Laatst online: 08-06 20:16

bakkerl

Let there be light.

Anoniem: 3631 schreef op dinsdag 27 juni 2006 @ 12:51:
Het probleem is nu dat ik in dadamail kan inloggen dmv een cookie mee te sturen waarin het password encrypted wordt meegestuurd.

Dit zou voor wachtwoord '123demo' worden: 'a09d762df0fa765ffb6c444183af4dce'. Als ik dit nu probeer te coderen met PHP dmv: crypt('123demo', 'a09d762df0fa765ffb6c444183af4dce'); krijg ik een heel andere, veel kortere string terug. Als ik het dan weer met md5 probeer, krijg ik een variabele die er wel op lijkt, maar net niet hetzelfde is.

Weet iemand misschien wat ik nou fout doe en of ik dit kan oplossen?
Het lijkt heel erg op een md5 functie (die geeft 32 tekens terug).
Je hoeft niets fout te doen, maar de data welke je in de cookie mee stuurt hoeft dus niet alleen het (gegeven) wachtwoord te zijn. Het kan ook het wachtwoord zijn in combinatie met het source ip, of een ander gegeven. Het zou dus ook kunnen zijn:
md5("username"."wachtwoord") of md5("usernaam"."ip"."wachtwoord") of weer ik wat voor combinaties je wil verzinnen, eventueel met nog een variable erbij.

Je zal dus moeten uitzoeken of dat resultaat alleen het wachtwoord is, of dat er nog andere functies/kunstjes op los gelaten zijn.

Deze info zul je dus moeten opvragen bij dadamail (of terug zoeken in de source daarvan).

[ Voor 14% gewijzigd door bakkerl op 28-06-2006 23:32 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

snake903 schreef op woensdag 28 juni 2006 @ 23:21:
base64 kan het niet zijn, want die eindigd altijd op ==
wie zegt me dat die er niet afgestript zijn? ;)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
snake903 schreef op woensdag 28 juni 2006 @ 23:21:
base64 kan het niet zijn, want die eindigd altijd op ==

Dat is de basis van encrypten/decrypten

Het is vrijwel zeker een md5, maar waarschijnlijk met een salt, om collisions te voorkomen!
Nope. Base64 kan eindigen op 1, 2 of géén =-tekens. Die zijn namelijk padding ;)
If there are two input bytes remaining (the remainder of the total input bytes divided by three is two), pad with one "=". If there is one input byte remaining (remainder was one), pad with two "=", otherwise, don’t pad. This prevents extra bits being added to the reconstructed data.
bakkerl schreef op woensdag 28 juni 2006 @ 23:29:
[...]
Je hoeft niets fout te doen, maar de data welke je in de cookie mee stuurt hoeft dus niet alleen het (gegeven) wachtwoord te zijn. Het kan ook het wachtwoord zijn in combinatie met het source ip, of een ander gegeven. Het zou dus ook kunnen zijn:
md5("username"."wachtwoord") of md5("usernaam"."ip"."wachtwoord") of weer ik wat voor combinaties je wil verzinnen, eventueel met nog een variable erbij.

Je zal dus moeten uitzoeken of dat resultaat alleen het wachtwoord is, of dat er nog andere functies/kunstjes op los gelaten zijn.

Deze info zul je dus moeten opvragen bij dadamail (of terug zoeken in de source daarvan).
Dat is wat RedRose zegt: Er kan een "salt" gebruikt zijn.

[ Voor 74% gewijzigd door RobIII op 28-06-2006 23:36 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Anoniem: 84120

Ik neem aan dat het een hexadecimale hash is, een hash is GEEN encryptie overigens. De hash is dan 4 * 32 bit groot (3 bit per teken, 32 tekens). Dat maakt dus 128bit.

Als ik vervolgens kijk op http://en.wikipedia.org/wiki/Cryptographic_hash_function, dan zie ik 7 mogelijke hashfuncties.

Noot: ALS HET EEN AHSH IS, DAN IS HIJ NIET TE ONTCIJFEREN

(je kan eventueel wel collisions vinden)

Acties:
  • 0 Henk 'm!

  • mr_obb
  • Registratie: Juni 2001
  • Laatst online: 07-05 20:25

mr_obb

Lakse Perfectionist

Anoniem: 3631 schreef op dinsdag 27 juni 2006 @ 12:51:
Dit zou voor wachtwoord '123demo' worden: 'a09d762df0fa765ffb6c444183af4dce'. Als ik dit nu probeer te coderen met PHP dmv: crypt('123demo', 'a09d762df0fa765ffb6c444183af4dce'); krijg ik een heel andere, veel kortere string terug.
Als ik het goed begrijp moet de uitkomst van de encryptie van 123demo 'a09d762df0fa765ffb6c444183af4dce' worden. Waarom geeft je dit dan mee als parameter aan de functie? De tweede parameter is optioneel en alleen interessant als je bijzondere eisen hebt.

Ik kan je niet zeggen welke encryptie er gebruikt is, maar volgens mij is het codebericht te lang voor MD5. DES zou kunnen. Dan moet je gewoon crypt('123demo'); doen, dus zonder die hele string erachter.

[ Voor 57% gewijzigd door mr_obb op 28-06-2006 23:40 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Anoniem: 84120 schreef op woensdag 28 juni 2006 @ 23:32:
Ik neem aan dat het een hexadecimale hash is, een hash is GEEN encryptie overigens. De hash is dan 4 * 32 bit groot (3 bit per teken, 32 tekens). Dat maakt dus 128bit.

Als ik vervolgens kijk op http://en.wikipedia.org/wiki/Cryptographic_hash_function, dan zie ik 7 mogelijke hashfuncties.

Noot: ALS HET EEN AHSH IS, DAN IS HIJ NIET TE ONTCIJFEREN

(je kan eventueel wel collisions vinden)
Dat geldt voor alle hashes in principe. Het idee achter een hash is juist dat het niet reversable is.
Je bedoelde natuurlijk HASH in plaats van AHSH ;)
mr_obb schreef op woensdag 28 juni 2006 @ 23:33:
..maar volgens mij is het codebericht te lang voor MD5...
Het is precies 32 tekens lang, typisch een MD5 hash juist.

[ Voor 20% gewijzigd door RobIII op 28-06-2006 23:35 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Anoniem: 3631

Topicstarter
De salt van de MD5 versleuteling zit toch in de uiteindelijke string als eerste tekens verwerkt? Op die manier kun je later de versleuteling weer gebruiken om de salt te bepalen? Anders kun je inlog combinatie controleren.. toch?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Anoniem: 3631 schreef op woensdag 28 juni 2006 @ 23:47:
De salt van de MD5 versleuteling zit toch in de uiteindelijke string als eerste tekens verwerkt? Op die manier kun je later de versleuteling weer gebruiken om de salt te bepalen? Anders kun je inlog combinatie controleren.. toch?
Als ik dit doe:

code:
1
MD5(MyString + "ABC")


Dan is "ABC" in principe de "salt", een soort "constante" die ik gewoon overal achter plak om zo "bekende" hashes te voorkomen voor wachtwoorden als "god" en "iamsuper" :+
Het is dan uiteraard wel de bedoeling dat je die "salt" voor jezelf houdt ;) Het heeft dus niets te maken met "de eerste paar tekens van de uiteindelijke string".
Check ook even de eerder gepostte link: http://en.wikipedia.org/wiki/Salt_%28cryptography%29

[ Voor 53% gewijzigd door RobIII op 28-06-2006 23:53 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Anoniem: 3631

Topicstarter
Je hebt later wel weer dezelfde salt nodig om bij de controle het ingevoerde wachtwoord te versleutelen tot dezelfde md5 crypt.. right?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Anoniem: 3631 schreef op woensdag 28 juni 2006 @ 23:53:
Je hebt later wel weer dezelfde salt nodig om bij de controle het ingevoerde wachtwoord te versleutelen tot dezelfde md5 crypt.. right?
Jep, maar je zou je ook even in de gegeven informatie kunnen verdiepen en het met "eigen ogen" lezen ;)

[ Voor 87% gewijzigd door RobIII op 29-06-2006 00:07 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Anoniem: 114687

Ipv. een MD5 hash zou het ook een SHA-1 hash kunnen zijn.

Meer info: http://nl2.php.net/sha1

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Het is open source, dus ff snel een blik geworpen. :) Zowel crypt als md5 komen voor in de source. Met zoeken op 'password' in bestand mail.cgi kom je wel een aantal interessante dingen tegen.

{signature}


Acties:
  • 0 Henk 'm!

  • Pete
  • Registratie: November 2005
  • Laatst online: 15-12-2024
Anoniem: 114687 schreef op donderdag 29 juni 2006 @ 09:42:
Ipv. een MD5 hash zou het ook een SHA-1 hash kunnen zijn.

Meer info: http://nl2.php.net/sha1
Nee want een SHA-1 hash geeft 40 tekens. En dit zijn er 32.

petersmit.eu


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 23:41

crisp

Devver

Pixelated

Die MD5-hash is geen hash van je wachtwoord maar een sessie-id ;)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

crisp schreef op vrijdag 30 juni 2006 @ 00:04:
Die MD5-hash is geen hash van je wachtwoord maar een sessie-id ;)
Zou ook nog kunnen ja. :P

Sundown Circus


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
crisp schreef op vrijdag 30 juni 2006 @ 00:04:
Die MD5-hash is geen hash van je wachtwoord maar een sessie-id ;)
Heppie 't over GoT of over DADAmail ?
Ik ben je he-le-maal kwijt :P

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

crisp schreef op vrijdag 30 juni 2006 @ 00:04:
Die MD5-hash is geen hash van je wachtwoord maar een sessie-id ;)
Misschien een domme vraag, maar waar herken je dat aan dan? :?
crisp schreef op vrijdag 30 juni 2006 @ 00:32:
[...]

Over DADAmail ;) Ik heb de source even bekeken om te kijken wat 'ie precies in dat cookie stopt en dat is een gegenereerde sessie-ID (Een MD5 van de huidige timestamp + een random getal). Het gecodeerde wachtwoord (overigens DES met een salt via crypt()) wordt wel serverside in de sessie opgeslagen, maar niet in de cookie :)
Ah, dat verklaard een hoop... :)

[ Voor 51% gewijzigd door CH4OS op 30-06-2006 00:35 ]


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 23:41

crisp

Devver

Pixelated

RobIII schreef op vrijdag 30 juni 2006 @ 00:27:
[...]

Heppie 't over GoT of over DADAmail ?
Ik ben je he-le-maal kwijt :P
Over DADAmail ;) Ik heb de source even bekeken om te kijken wat 'ie precies in dat cookie stopt en dat is een gegenereerde sessie-ID (Een MD5 van de huidige timestamp + een random getal). Het gecodeerde wachtwoord (overigens DES met een salt via crypt()) wordt wel serverside in de sessie opgeslagen, maar niet in de cookie (ww, zelfs gecodeerd, opslaan in een cookie is ook een grote NONO dus ik vermoedde al dat het iets anders zou zijn) :)

[ Voor 12% gewijzigd door crisp op 30-06-2006 00:35 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

Anoniem: 3631

Topicstarter
Hmm nou begin ik echt te twijfelen aan mijn eigen vermogen :P Wat ik raar vond is dat die sessie soms veel langer open bleef staan dan de 1440 seconden die staan ingesteld in PHP.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-06 17:33

Janoz

Moderator Devschuur®

!litemod

Die 1440 seconden wordt elk request weer gereset. Pas als je 24 minuten lang geen enkele pagina opvraagt van die site is er een kans dat de sessie verloopt (het is namelijk ook niet gegarandeerd afgelopen na die 1440 seconden.)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1