Toon posts:

[php+mySQL] Password codering

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

Verwijderd

Topicstarter
Even een korte uitleg over hetgene waar ik mee bezig ben, ik ben dus een inlog systeem aan het maken voor een site. Waarbij users zich kunnen aanmelden met een inlognaam en dus ook een wachtwoord.

Tot nu toe slaat hij het wachtwoord op in de database zoals het ook ingevuld wordt bij de regitratie. Nu wil ik alleen het wachtwoord coderen.

Ik heb het eerst even geprobeerd met MD5() te coderen, dan moet ik bij het inloggen van een user het wachtwoord wat ingevuld wordt omzetten naar MD5() om het dan te vergelijken met de waarde in mijn database. MD5() schijnt namelijk niet omkeerbaar te zijn om het terug te zetten in de oude waarde.

Nu heb ik wel gehoord dat RSA enDES56/DES64 wel goed zijn om te gebruiken vanwege de hoge zekerheid van beveiliging.

Ik kan alleen nergens op internet een goede uitleg vinden over deze vormen van codering. Weet iemand hoe ik deze of een andere goede codering kan gebruiken. :?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Waarom zou je het willen kunnen omkeren :?

Is alleen maar veiliger dat je dat niet doet :)
Gewoon als md5 (of crypt) opslaan en dan bij de controle select .... from tabel where user = $user and password = md5('$password');
of eerst het password md5-en en dan pas opsturen naar je database.

Verwijderd

Topicstarter
Ik wil dat juist niet omdat ik nog bezig ben aan een password mailer. Dus voorals iemand zijn/haar password kwijt is. MD5 is dus niet omkeerbaar en kan dus het password dan niet mailen.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Nou en?
Als ie het toch vergeten was, maakt het toch niet zo uit of je het vorige of een nieuw gegenereerd pass opstuurt? ;)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Als iemand zijn wachtwoord kwijt is dan maakt het toch niet uit de persoon de oude terug krijgt, die is hij toch al vergeten.
Dan geef je hem gewoon toch een nwe.

Zeg ACM??? Stiekem jouw reply verplaatsen naar boven mij .... :( :( :( :D

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
En hoe zie jij dat dan voor je :?

Dus als iemand een zijn wachtwoord kwijt is zeg jij dat je dan een nieuw password moet laten genereren om het dan weer te laten opsturen naar je mail. Dan kan je dus inloggen om het vervolgens te veranderen.

Sorry hoor, vind ik een beetje een omweg. :(

  • DanceTrend
  • Registratie: Maart 2001
  • Laatst online: 12-05 14:34

DanceTrend

w0ei

Mja denk daar over na, dat ie een nieuw password genereert, emailt naar gebruiker met een url waar ie n nieuw password in kan vullen, klaar.

[edit]
Nee hij moet niet inloggen en m dan veranderen, gebruiker wordt naar een page gestuurd waar ie m direct kan veranderen, zonder andere dingen te doen.

[edit2]
Bovendien, een password ongecodeerd opslaan in een DB is net zo onveilig als m wel gecodeerd opslaan maar met een code die je terug kan zetten / 2 keer opslaan, 1 keer gecodeerd, andere keer niet voor je passmailer.. Das pas een omweg :P

Verwijderd

Topicstarter
DanceTrend schreef op 11 augustus 2002 @ 12:45:
Mja denk daar over na, dat ie een nieuw password genereert, emailt naar gebruiker met een url waar ie n nieuw password in kan vullen, klaar.
Dat komt meer in de buurt.

Heb je misschien een voorbeeld hoe ik dat kan doen. :?

Verwijderd

ik heb verleden keer een functie geschreven die een $passwd genereerd van een X aantal karakters (6, 8 of 10) wat je dan weer met MD5 of Password (MySQL) kunt gebruiken, en daarbij een lostpasswd file die weer een nieuwe kan genereren en opsturen..... werkt als een trein en is best veilig te noemen.

Anders zul je iets moeten gaan doen met htpasswd en htaccess files (check www.hotscripts.com/PHP/ )

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

[bot]Dan moet je gebruiker er maar voor zorgen dat ie zijn passwords niet vergeet[/bot] ;)

Of je kan het nog anders aanpakken, zorg ervoor dat je gebruiker een link krijgt waar ie een nieuw password direct kan invullen (wel veilig aanpakken natuurlijk).

Of maak zo'n leuk "vraag mij deze vraag en ik geef het antwoord" dingetje erbij.

  • DanceTrend
  • Registratie: Maart 2001
  • Laatst online: 12-05 14:34

DanceTrend

w0ei

Verwijderd schreef op 11 augustus 2002 @ 12:46:
[...]

Dat komt meer in de buurt.

Heb je misschien een voorbeeld hoe ik dat kan doen. :?
Nou, een gebruiker vertelt jouw site dat ie zn password kwijt is. Dan klikt ie op nieuw password setten, dan wordt de oude gedelete en een nieuwe gemaakt (check www.phpfreakz.com voor een random password generator), die wordt naar m toegemeeld. Tegelijk wordt ie ge-MD5()-ed, en in dbase opgeslagen als gebruiker's password. Dan staat in die mail dus zn nieuwe password en een url naar een scriptje om m zonder inloggen te veranderen. Klaar.

Verwijderd

Topicstarter
Zoiets als hieronder zou dan dus een password van 10 tekens genereren en dan moet ik dus dus mailen en md5 coderen en in de database zetten:

<php
function Generate_Pass ($pass_len) {
$nps = "";
mt_srand ((double) microtime() * 1000000);
while (strlen($nps)<$pass_len) {
$c = chr(mt_rand (0,255));
if (eregi("^[a-z0-9]$", $c)) $nps = $nps.$c;
};
return ($nps);
};

?>

  • DanceTrend
  • Registratie: Maart 2001
  • Laatst online: 12-05 14:34

DanceTrend

w0ei

als je $newpass = Generate_Pass(10); doet staat er in $newpass een nieuw password van 10 tekens ja.

Maar snap je me nou nog niet? Want je moet het nou wel zelf kunnen bedenken...

Die user krijgt een email met zn nieuwe password en een URL om m te veranderen. Daar voert ie zn naam in, en zn nieuwe password die is gegenereert, EN zn nieuwe password die ie wil. Dan zorg je dat je de MD5() van zijn ingevoerde password checkt met het nieuwe password dat in je dbase staat. Klopt username ook, dan zorg je dat ie met een UPDATE zn nieuwe password wordt vervangen door diegene die hij heeft ingevoerd.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

VirtualMinds, pas op dat je niet nog meer een "neem mij bij het handje" topic hiervan maakt. Dat zien we liever niet, vragen stellen is prima, maar ga wel zelf nadenken als je antwoorden krijgt.

  • DanceTrend
  • Registratie: Maart 2001
  • Laatst online: 12-05 14:34

DanceTrend

w0ei

Ja ik lijk wel gek dat ik dat allemaal voorzeg maar het is dat ik t zelf ook moet doen binnenkort en dat ik in een goede bui ben ;)

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Tip:
mt_srand ((double) microtime() * 1000000);
is vies! mt_srand is (mocht je geen zin hebben om de manual te pakken) bedoeld om de willekeurige-getallen-generator te initialiseren. Dat moet je dus goed doen anders worden je passwords niet zo willekeurig als je zou willen.

Zoals hier te lezen valt is dit een beter methode:
PHP:
1
2
list($usec, $sec) = explode(' ', microtime());
mt_srand((float) $sec + ((float) $usec * 100000));

|_____vakje______|


  • DanceTrend
  • Registratie: Maart 2001
  • Laatst online: 12-05 14:34

DanceTrend

w0ei

Mja maar,
het is niet zo dat er duizenden passwords tegelijk komen. En bovendien wordt ie gelijk weer gewijzigd, dus de kans dat er 1 dezelfde tussenzit is alsnog zeer klein, maar wat CyberSnooP zegt kan natuurlijk ook :)

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Nog even een vraag over dat MD5 password. Als een gebruiker zijn/haar password dan intikt in de browser, dan wordt ie toch pas omgezet met md5 op de server. Met andere woorden dan gaat het password toch alsnog als plaintext over het internet heen ?? MD5 is in dat geval dan toch alleen maar veilig als iemand directe toegang heeft tot je database?? Of zie ik dat helemaal verkeerd?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Daarnaast is het ook 'netter'. Persoonlijk vindt ik het niet prettig waneer een webmaster ff in zijn phpmyadmin kan kijken wat voor wachtwoorden mensen gebruiken.

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


  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

wustenveld schreef op 04 september 2002 @ 15:33:
Nog even een vraag over dat MD5 password. Als een gebruiker zijn/haar password dan intikt in de browser, dan wordt ie toch pas omgezet met md5 op de server. Met andere woorden dan gaat het password toch alsnog als plaintext over het internet heen ?? MD5 is in dat geval dan toch alleen maar veilig als iemand directe toegang heeft tot je database?? Of zie ik dat helemaal verkeerd?
Als je even op MD5 had gezocht was je deze:

[rml][ PHP & MYSQL] md5() inloggen[/rml]

post tegen gekomen :)

  • wustenveld
  • Registratie: Februari 2002
  • Laatst online: 08-08 17:31
Haha, ik zie het. Ik heb een javascript file (md5.js) gevonden op het internet: http://pajhome.org.uk/crypt/md5/md5src.html en daarmee kan ik het client side doen.
Thanx

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Ja die gebruik ik zelf ook, met dank aan paj ;)
Pagina: 1