Avatar billede tigertool Nybegynder
09. maj 2005 - 16:21 Der er 15 kommentarer og
1 løsning

Kryptering til /etc/passwd

hej,

På min Debian server har jeg f.eks. følgende krypterede password liggende: $1$T6o/Mxu9$zsx/0BSTX0QK/3CM6HKAb1 - hvordan kan jeg vha. PHP kryptere en lignende streng?
Avatar billede fennec Nybegynder
09. maj 2005 - 16:25 #1
sha1(streng) eller md5(streng) afhængig af hvilken krypteringsrutine du vil bruge.

se også her:
http://dk.php.net/manual/da/function.sha1.php
Avatar billede tigertool Nybegynder
09. maj 2005 - 16:27 #2
Hvilken kan der være tale om i det eksempel jeg har postet?
Avatar billede fennec Nybegynder
09. maj 2005 - 16:32 #3
Det er vist crypt(streng) du skal bruge i stedet.
http://dk.php.net/manual/da/function.crypt.php

Har ingen ide om hvilken det kan være, men ud fra beskrivlsen fra "function.crypt.php" vil jeg gætte på at det er en MD5, pga at den starter med $1$
Avatar billede tigertool Nybegynder
09. maj 2005 - 16:39 #4
crypt: LpSFvEu0VY6/g
md5: b2cd7cefdc6ed6cc18919f4079dfba02

Af samme streng som øverst - kan det være korrekt?
Avatar billede fennec Nybegynder
09. maj 2005 - 16:44 #5
md5() returnere altid en 32 tegns streng (HEX-nummer), uanset hvor lang teksten er. Hvor jeg vil tro at crypt() returnerer et variabel længde.
Avatar billede tigertool Nybegynder
09. maj 2005 - 17:16 #6
Jeg tror at dette er løsningen:
system("mkpasswd --hash=md5 ".$pass);
Avatar billede Slettet bruger
09. maj 2005 - 18:06 #7
tigertool -> Den sidste løsning vil du ikke kunne regne med..

Du skal bruge mcrypt hvis du skal gemme data som senere skal kunne læses af mennesker..
Du skal bruge md5 hvis du skal gemme ting som aldrig skal dekrypteres igen.. Fx passwords og checksums osv.. Så hvis det er passwords til noget login e.l. er det md5 du skal bruge...
Avatar billede tigertool Nybegynder
09. maj 2005 - 18:11 #8
gartzen -> Det jeg skal bruge det til er netop at smide et nyt password til en user i /etc/passwd-filen. Derfor er det vigtigt at jeg benytter den rigtige kryptering.
Avatar billede Slettet bruger
09. maj 2005 - 18:54 #9
Arh på den måde.. Det ved jeg ikke noget om..
Avatar billede fennec Nybegynder
10. maj 2005 - 10:26 #10
Er det et password som et andet program skal bruge, siden du skal efterligne krypteringen???
Avatar billede Slettet bruger
10. maj 2005 - 10:46 #11
Jeg tror du skal spørge enten i kategorien Kryptering eller i Linux kategorien...
Avatar billede coderdk Praktikant
10. maj 2005 - 20:07 #12
Prøv med:

echo crypt( 'ditpassword', '$1$entest!!$' );

Eller hvis det er dit password du har skrevet:

echo crypt( 'ditpassword', '$1$T6o/Mxu9$' );
Avatar billede coderdk Praktikant
10. maj 2005 - 20:08 #13
Altså:

crypt( ET_PASSWORD, '$1$' . OTTE_TILFÆLDIGE_BOGSTAVER . '$' );

Burde kunne lave et password til dig, der vil kunne bruges som et linux password...
Avatar billede tigertool Nybegynder
19. maj 2005 - 01:57 #14
Løsningen blev nu

system("mkpasswd --hash=md5 ".$pass);

- det virker bare :)

Til information er det til et system jeg har lavet således at brugere kan skifte deres kodeord til f.eks. FTP-konti ved hjælp af en browser :)
Avatar billede tigertool Nybegynder
19. maj 2005 - 01:58 #15
.
Avatar billede coderdk Praktikant
19. maj 2005 - 02:36 #16
Hvorfor ikke bare bruge en FTP-server der har sine brugere i mysql? pure-ftpd f.eks. virker fint til formålet ;)

Hvis du vil bruge den løsning, som jeg ikke synes er særlig god, bør din kode være:

system( "mkpasswd --hash=md5 " . escapeshellarg( $pass ) );

Så kan brugerne nemlig ikke gøre hvad de vil på din server - Antag at en skifter password til:

hejsa;rm -rf /

Så bliver alle filer som brugeren har lov til at slette, slettet :P Ikke smart :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester