Toon posts:

[Fedora] Password check?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een control panel aan het bouwen. Het is tot nu toe aardig geslaagd.
Maar nu loop ik tegen een probleem aan:

Ik wil een login systeem maken die controlleerd of passworden overeenkomen met die van de user passworden, daarvoor heb ik een password crypter gemaakt:

code:
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl -w

use Crypt::PasswdMD5 ;

$passwd    = $ARGV[0];

$cryptedpw = Crypt::PasswdMD5::unix_md5_crypt ( $passwd , substr ( time () , -8 ) ) ;

print $cryptedpw;


als ik hem uitvoer met "./crypter test" krijg ik:

$1$86705905$JuRZ7tygY7267cqrd8w0U/

maar mijn vraag is hoe moet ik nou checken of het password overeenkomt met de user password? aangezien de encrypte strings steeds anders worden :S

Wie kan mij helpen??

Groeten Ruben!

Verwijderd

Dan zul je dus steeds wijzigende variabele (in dit geval de tijd) ook op moeten slaan, zodat je dezelfde MD5 hash kunt genereren. Wat is trouwens de toegevoegde waarde van de tijd, denk je dat je wachtwoorden hiermee veiliger worden :? .

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Klopt het dat je hiermee de systeem wachtwoorden wil controleren? De toegang tot de zgn. shadow file heeft namelijk alleen de root user; het lijkt me niet verstandig om je systeem onder deze user te laten runnen :)

[google=howto verify system password linux]

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Laat een user een pass invoeren sla die op in: $password
Roep deze functie aan om te encrypten:

my $salts=
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789./";
my $s1 = rand(64);
my $s2 = rand(64);
my $salt = substr($salts,$s1,1) . substr($salts,$s2,1);
my $encrypted_password = crypt($password,$salt);

En deze om te verifieren:

You can then check to see if a newly provided password is in fact the encrypted password with this simple Perl fragment:

if($encrypted_password eq crypt($entered_password, $encrypted_password) {
print "password matched.\n";
}

Zie ook: www.oreillynet.com/pub/a/.../PUIS3_chap16/index4.html
(edit: dit hoort eigenlijk in Programming & Webscripting...)

[ Voor 26% gewijzigd door Verwijderd op 08-06-2004 19:47 ]


  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Cowboy_Bebop, deze had ik ook gevonden; maar volgens mij is het probleem dat de salt bij het aanmaken van het password random is. Ik denk trouwens dat dit juist niet in PW hoort :)

Heeft de TS niet toevallig MD5 wachtwoorden ge-enabled? Dat zou het allemaal wat makkelijker maken ;)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Topicstarter
Bedankt Allemaal, hiermee ben ik weer een stuk verder gekomen!

  • Zwerver
  • Registratie: Februari 2001
  • Niet online

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer

Pagina: 1