Portál AbcLinuxu, 21. července 2025 16:33
# mkpasswd
mkpasswd: systém neobsahuje žádnou DBM databázi - není co dělat.
Zkoušel jsem různé parametry a nikdy nic...
Googlil jsem a našel spouty lidí se stejným problémem leč odpověď žádnou.
Potřebuji generovat hesla do databáze a tak jsem zkoušel i fci v phpMyAdminu při zadávání řetězce - md5(), ale ta mi pro řetězec 'heslo' vracela toto:
955db0b81ef1989b4a4dfeae8061a9a6
ale správně má být asi toto: '$1$inTJUsfT$Q8r9Ap5VL.XAd3L3WMZBr/
' (viz. http://www.abclinuxu.cz/forum/show/93334)
Netušíte jak tedy spravit mkpasswd nebo co dělám špatně v tom phpmyadminu?
Díky
marek@bigtux:~> echo -n "heslo" | md5sum 955db0b81ef1989b4a4dfeae8061a9a6 -
[tsunami@vodik]$ mkpasswd --version GNU mkpasswd 4.7.5
#include <stdio.h> #include <crypt.h> #include <stdlib.h> #include <time.h> #define SALTLEN 8 static char chset[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; char *myCrypt(char *pwd) { int i; char salt[SALTLEN+5]="$1$"; srand(time(NULL)); for(i=0;i<SALTLEN;i++) salt[i+3]=chset[rand() % strlen(chset)]; salt[i+3]='$'; salt[i+4]='\0'; return crypt(pwd,salt); } int main(int argc, char *argv[]) { if (argc<2) fprintf(stderr,"Use: %s password\n",argv[0]); else printf("%s\n",myCrypt(argv[1])); return 0; }
Salt je soucasti vygenerovaneho retezce a kontrola hesla se provadi tak, ze se porovna crypt(heslo, ulozeny_hash)==ulozeny_hash.
No jo, takze nemůžu výsledky porovnávat takto:
if '$1$m4QP6ygE$JTffnGSHh6AFu1Ic4/T02.' == '$1$Ofz0HxgB$zfFE/rvT2tmVy132dtCG60' protože by mi to nevyšlo?
Já si chci do databáze uložit zašifrované heslo - uživatel pak zadá heslo, to se zašifruje tou md5 a porovná s databází.
Ale máte pravdu, že kdyby byly otisky vždy takto stejné, tak by poté šla jednoduše použít hrubá síla...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.