mysql_fetch_object - fwrite - crypt?

potreboval bych vpasovat sem fci crypt a aplikovat ji na hesla zapisovana do .pass. Vite prosim nekdo?

$soubor = fopen ("f:/_/.pass","w"); //cesta k souboru s hesly
while ($row = mysql_fetch_object($query))
{
fwrite ($soubor,$row->jmeno.":".$row -> heslo."\n");
}
fclose ($soubor);
mysql_free_result($query);
sem blby uz to mam - - - asi zakon shvalnosti, zkousim to hodinu a kdyz napisu do forka tak vterinu na to se mi to povede.

Tak sorry za tuhle nit.
sem blby uz to mam - - - asi zakon shvalnosti, zkousim to hodinu a kdyz napisu do forka tak vterinu na to se mi to povede.

Tak sorry za tuhle nit.

kdyby nekdo .... snad
$soubor = fopen ("f:/_/.pass","w"); //cesta k souboru s hesly
while ($row = mysql_fetch_object($query))
{
fwrite ($soubor,$row->jmeno.":".crypt ("$row -> heslo")."\n");
}
fclose ($soubor);
mysql_free_result($query);
ja by som tie hesla rovno hashoval md5-kou...
fwrite ($soubor,$row->jmeno.":".md5($row -> heslo)."\n");

a potom niekde budes zistovat spravnost hesla nejako takto
if ($heslo == md5($pass)) ...
kde $pass bude nacitany hash hesla zo suboru, pre daneho pouzivatela
<HTML>hashovani hesla se moc nepouziva... profesional to cryptuje</HTML>
Master:
v com je to lepsie ? hashovanie podla mojho nazoru je bezpecnejsie...
alebo hashovanie s klucom (napr. HMAC)
profesional samozrejme _hashuje_, protoze hash je jednosmerna sifra, ze ;-), a tudiz z ni lze heslo odvodit pouze brute-force attackem. ale at to "profesional" kryptuje trepa obycejnym XORem, me to je jedno...
<HTML><i>tudiz z ni lze heslo odvodit pouze brute-force attackem</i>

prave proto je lepsi crypt :)


viz:

$password = crypt("My1sTpassword"); // let salt be generated

# You should pass the entire results of crypt() as the salt for comparing a
# password, to avoid problems when different hashing algorithms are used. (As
# it says above, standard DES-based password hashing uses a 2-character salt,
# but MD5-based hashing uses 12.)
if (crypt($user_input, $password) == $password) {
echo "Password verified!";
}


jako sul si narves silenost nebo dokonce MD5ku a zkus to resit bruteforcem :)

moc o tom nevis, vzdyt je to i docela logicky...
kdyz pouzijes hash (otisk) bude slovo "ahoj" vypadat NAPR. takhle:
sdfhksfd5f45s6ad4faasdf5
ale kdyz "ahoj" zasifrujes na bazi jineho retezce a udelas to poradne, nikdo ti to bruteforcem nelozkouska driv nez bude 1TB CPU</HTML>
mno, asi spis 1THz CPU, vid...

a prosimte, precti si jeste jednou to, co pisu ja a i to, co pises sam:

ja: > profesional samozrejme _hashuje_

ty:
# You should pass the entire results of crypt() as the salt for comparing a
# password, to avoid problems when different hashing algorithms are used. (As
# it says above, standard DES-based password hashing uses a 2-character salt,
# but MD5-based hashing uses 12.)

vidis tam ten retezec "hashing"?
a protoze crypt() afaik defaultne pouziva DES-based hashing, ktery akceptuje jako salt max. 2 znaky (viz tvuj post), tak urcite nemas vic jak 2^16 kombinaci (65536, jestlize ovsem crypt() sezere jakykoliv znak, coz by mel), procez je naprosto zbytecne pouzivat md5ku. MD5 algoritmus se mimo jine pouziva jako hashovaci prostredek pro hesla na vetsine soucasnych linuxu.
<HTML>to tvoje chytani za slovo a slovickareni me uz zacina srat v kazdem threadu je to nejmin jednou</HTML>
vid ;-), me zase vadi staly kecy o profesionalite. tak to mame 1:1.
kdyz uvedes nepresnou informaci ("hashovani hesla se moc nepouziva... profesional to cryptuje"), musis pocitat s tim, ze te nekdo muze opravit. a kdyz jeste k tomu pridas utoky osobni povahy ("moc o tom nevis, vzdyt je to i docela logicky..."), mas vysledek pomerne jisty ;-)
v podstate je to, myslim, jedno aj tak pri hashovani hashujem nielen samotne heslo ale pridavam tam aj nieco specificke navyse, takze
ostanem pri md5. aj kvoli tomu,ze je md5 hodne rozsirena v inych sluzbach... dakujem, za rozne nazory.
asi takhle - delas heslo do webove aplikace, takze je dobry vedet, jak vysoukou uroven bezpecnosti potrebujes. pokud ti nestaci vysledek funkce md() nebo sha1() nebo crypt() nebo blablabla(), tak mas na freewebu smulu, protoze bez SSL (prip. obdoby) neexistuje (ok, nevim o zadnem) zpusob, jak neprenaset heslo v cleartextu (krome pouzivani OTP, coz je ale trochu jinde...)
jkt:
ked ta mozem doplnit...este tu existuje moznost hashovat/cryptovat cez JS. ale na to sa neda velmi spolahnut, kedze ho moze mat niekto vypnuty.
zejmena je takova vec na nic. kryptovani hesla ulozeneho na serveru se pouziva k tomu, aby kdyz si nekdo stahne soubor s hesly, tak aby nemel vyhrano. kdyz bys do db/souboru s hesly ulozil md5(originalni_heslo), klient by posilal md5(zadane_helo) a server by porovnaval stored_hash==klient_hash, tak je system na nic - stahnes si db a jsi doma/na serveru. jedina vyhoda je v tom, ze se neprozradi heslo, pokud ho pouzivas pro vice uctu, ale to je asi tak vsechno.
jkt: jasne. dik.
crypt(promena,CRYPT_BLOWFISH) Lepsi nez md5 :)) Abyste se nehádali...
kecám... takhle:

$key = '$2a$07$A.QAFolLar4v27MGXrrROxpj7hvyhxT2qypSsWtIDjdOSYLMkABq';

$user_input = 'thebestostoserveyou';
$password = crypt($user_input,$key);

if ($password == $key) {
echo "succesful";
}
else
{
echo "missed";
}
Je to zkopčený, ale neva. Když tu je blowfish, tak je to zavodou :))
Jo crypt je profesionálnější, když ho člověk umí použít a má možnosti... :))
ten dlouhej retezec je ti na prd, protoze (according to cz.php.net/crypt) i blowfish cryptovani zere salt max. 16 znaku.
at2: ten salt je pro to tak dlouhej, že $2a$ udává, že jde od blowfish (na freebsd) :)) čti líp manuál...
sWtIDjdOSYLMkABq - to mi prijde jako 16 znaku a je to tak asi slaba tretina (od konce) toho, co mas ty jako salt. nebo mi neco unika?
Jo to jo. Stydím se :o(
nechapem... v manuale sa pise o max. 16 dlhych saltoch, tot spominany blowfish, ale v prikladoch tam maju salty cez 60 znakov.
jedine vysvetlenie ma napada, ze sa to berie po blokoch, teda po tych 16tich znakoch na kazdy blok vstupneho textu...