Portál AbcLinuxu, 4. listopadu 2025 02:50
ftpasswd, zda tmu tak opravdu je, a pak si někde implementovat funkci (pokud to žádná existující utilita neumí), která bude pouze ověřovat heslo – tj. vezme zadané heslo a zadaný salt, vytvoří hash a porovná s předchozím hashem.
            
q: proc ftpasswd generuje v zavislosti na case 2x ruzne hashe pro 1 stejny text?
a:
    login: test
    passw: 123456
    ziskam po 2x spustenich tyto retezce jako heslo:
    $1$mnoliFFT$nxvvGaZ88IxqBizWUq15j1
    $1$tJ5rHRbh$hEyQtOEwSKLBTP27nQZT0.
    $1$UVPtJdhz$YWpwodkQGKewWB9z6zAXp0
    toto jsou uplne 3x jine hashe, ale v pripade, ze se tyto retezce pokusi ftpasswd
    zmenit, tak pozna, ze se jedna o stejne heslo. proc?
    reseni je asi zde (ftpasswd, radky: 349; pro verzi: 1.1.3):
    my ($curpasswd, @junk) = find_passwd_entry(name => $name);
    my $hash = crypt($passwd, $curpasswd);
    if ($hash eq $curpasswd) {
        ...
    }
    funkce: 'find_passwd_entry' zjisti udaje o uzivateli a vrati:
        return ($pass, $uid, $gid, $gecos, $home, $shell);
    tj. 1. argument je aktualni heslo v hash-podobe, potom je to pole v @junk
    prikazem:
    crypt zasifrujeme/hashujeme 'passwd' pomoci salt-u 'cur-passwd' a ziskame hash, ktery by
    mel byt uplne identicky jako hash curpasswd
    a ejhle ono to funguje:
    #!/usr/bin/perl
    #    my ($curpasswd, @junk) = find_passwd_entry(name => $name);
    #    my $hash = crypt($passwd, $curpasswd);
    #    if ($hash eq $curpasswd) {
    #    ...
    #    }
    $p='$1$mnoliFFT$nxvvGaZ88IxqBizWUq15j1';
    $p='$1$tJ5rHRbh$hEyQtOEwSKLBTP27nQZT0.';
    $p='$1$UVPtJdhz$YWpwodkQGKewWB9z6zAXp0';
    $h=crypt('123456', $p);
    print "\n= = =\n".$p."\n".$h."\n";
    output:
    = = =
    $1$UVPtJdhz$YWpwodkQGKewWB9z6zAXp0
    $1$UVPtJdhz$YWpwodkQGKewWB9z6zAXp0
            
        Tiskni
            
                Sdílej:
                
                
                
                
                
                
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.