Portál AbcLinuxu, 21. července 2025 16:33


Dotaz: mkpasswd: žádná DBM

9.7.2005 14:50 phax7 | skóre: 34 | blog: PhaX_blog
mkpasswd: žádná DBM
Přečteno: 235×
Odpovědět | Admin
Zdravím,

potřebuju generovat MD5 otisky hesel - myslel jsem, že k tomu použiji program mkpasswd, ale ten mi při spuštění hodí hlášku:

# 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
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.7.2005 16:01 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: mkpasswd: žádná DBM
Odpovědět | | Sbalit | Link | Blokovat | Admin
To 955db0b81ef1989b4a4dfeae8061a9a6 je správně. Viz.
marek@bigtux:~> echo -n  "heslo" | md5sum
955db0b81ef1989b4a4dfeae8061a9a6  -
9.7.2005 16:24 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: mkpasswd: žádná DBM
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jakou verzi programu používáš?
[tsunami@vodik]$ mkpasswd --version   
GNU mkpasswd 4.7.5
-- Nezdar není hanbou, hanbou je strach z pokusu.
9.7.2005 16:28 phax7 | skóre: 34 | blog: PhaX_blog
Rozbalit Rozbalit vše Re: mkpasswd: žádná DBM
Bohužel i tahle volba mi vypíše chybu s databází:(

Mám slackware 10.1 a tam to je v těhle balíčcích:

http://slackware.it/en/pb/searchfile.php?v=10.1&c=slackware&string=mkpasswd&w=on
9.7.2005 16:35 Zdeněk Burda | skóre: 61 | blog: Zdendův blog | Praha
Rozbalit Rozbalit vše Re: mkpasswd: žádná DBM
Program, který používám je v Debianu součástí balíčku whois. Stáhni si jeho zdroják a přelož si ho...
-- Nezdar není hanbou, hanbou je strach z pokusu.
9.7.2005 16:49 phax7 | skóre: 34 | blog: PhaX_blog
Rozbalit Rozbalit vše Re: mkpasswd: žádná DBM
Díky, zkusím, ale jestli echo -n "heslo" | md5sum generuje dobře, tak není třeba. Proč ale mkpasswd vrací jinou hodnotu? Nebo jsem něco zásadního na md5 nepochopil? (přiznám se, že tomu moc nerozumím, vím jen tolik, že to generuje unikátní otisk a že z otisku nejde (ne, že bych chápal jakto:) dostat původní řetězec.)

Dík
9.7.2005 21:56 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: mkpasswd: žádná DBM
Možná, že mkpasswd k hashovanému řetězci přidává nějaké informace navíc a z nich výsledného řetězce vypočítává hash.
10.7.2005 00:39 Jirik
Rozbalit Rozbalit vše Re: mkpasswd: žádná DBM
funkce md5(text) pocita hash a pouziva se pro kontrolu integrity a nehodi se pro ulozeni hesla kvuli slovnikovemu utoku.

pro heslo se pouziva funkce crypt(heslo,salt), kde salt je pro md5-hesla "$1$ABCDEFGH$" kde ABCDEFGH je nahodnych osm znaku (velka,mala,cisla a mozna nejake znaky). V PHP pokud je salt prazdny retezec, salt se vygeneruje (neplati pro stare verze).

Pozor, ve Slacku je mkpasswd jako jiny program (generuje hesla).

Taky muzes zkusit prelozit nasledujici programek ("cc -o program program.c -lcrypt")
#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;
}
10.7.2005 07:30 phax7 | skóre: 34 | blog: PhaX_blog
Rozbalit Rozbalit vše Re: mkpasswd: žádná DBM
Program jsem přeložil a spustil a například pro vstup "heslo" mi generuje pokaždé jiný řetězec... a jsme u toho, že nechápu to šifrování:) Mohl by mi to někdo nějak laicky osvětlit? Jak potom oproti tomu můžu ověřovat heslo, když nezadávám ten "salt"?

Děkuji
10.7.2005 13:18 Jirik
Rozbalit Rozbalit vše Re: mkpasswd: žádná DBM
To, ze to generuje ruzny retezec je spravne :-)

Salt je soucasti vygenerovaneho retezce a kontrola hesla se provadi tak, ze se porovna crypt(heslo, ulozeny_hash)==ulozeny_hash.

Format vysledku funkce crypt: $typ_ulozeni$salt$cisty_hash

Duvodem nahodnosti hesla je to, ze pokud bych mel slovnik typickych hesel, muzu si hash pro kazde heslo spocitat a pak az budu lamat hesla, tak staci jen projet slovnicek (uz zpracovany slovnicek se pry da najit na internetu, ma cca 20MB). Ovsem salt mi to neprijemne komplikuje, protoze bych to musel spocitat pro vsechny kombinace a to by mi zvetsilo slovnicek o cca 15 radu :-) Potreboval bych pak disk s 5 miliardami TB ;-)

Jinak diky nahodnosti ani admin nepozna, ze dva lide maji stejne heslo.

Existuji programy, ktere salt negeneruji nahodne, ale odvozuji ho napr. z loginu nebo ho dokonce maji fixni. To ovsem degraduje puvodni myslenku.
11.7.2005 08:18 phax7 | skóre: 34 | blog: PhaX_blog
Rozbalit Rozbalit vše Re: mkpasswd: žádná DBM
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...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.