djmartins Posted March 25, 2011 Report Share Posted March 25, 2011 Kāda ir atšķirība lietojot hash("md5","teksts"); vai arī šādu variantu md5("teksts"); ? Quote Link to comment Share on other sites More sharing options...
m8t Posted March 25, 2011 Report Share Posted March 25, 2011 Pirmajā variantā ir vairāk simboli. Ps. - gribi kaut ko vēl labāku? sha1() Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 25, 2011 Report Share Posted March 25, 2011 Atšķirība ir tāda, ka darot to ar hash() funkciju tas viss notiks lēnāk, jo tiks ielādēts ne tikai pats MD5 algoritms, bet visi PHP jau iebūvētie (piemēram, SHA-1, SHA-256 utml.). Tāpēc, ja nevajag neko vairāk kā MD5, tad izmanto md5()! Quote Link to comment Share on other sites More sharing options...
briedis Posted March 25, 2011 Report Share Posted March 25, 2011 Atšķirība ir tāda, ka darot to ar hash() funkciju tas viss notiks lēnāk, jo tiks ielādēts ne tikai pats MD5 algoritms, bet visi PHP jau iebūvētie (piemēram, SHA-1, SHA-256 utml.). Tāpēc, ja nevajag neko vairāk kā MD5, tad izmanto md5()! Ir kādi testa piemēri ar rezultātiem + laika ieguvumiem? :) Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 25, 2011 Report Share Posted March 25, 2011 Pats testēju. Vai tad tā nav, ja jau prasi?? P.S. Te, šķiet, komentāros arī bija rakstīts. Quote Link to comment Share on other sites More sharing options...
mounkuls Posted March 25, 2011 Report Share Posted March 25, 2011 varbūt man nebūs taisnība, bet, md5 tai funkcijai padodot pietieami netradicionālu username+password jau pats par sevi ir gadījums uz ablomu. Galu galā kāpēc to parasti dara - lai atkostu paroli vai iespēju ielogoties citā kontā. Viss, ko mēs vēlamies, tas ir lai ļaundarim nespīd realizēties. Kas traucē uzrakstīt savu funkciju vai pat klasi lai to nokodētu? Nojāsies visi tie brute verķi ar saviem md5. Pat ja tas lauzējs ģjorganajs redzēs, ka stringā ir tikai +2simboli, sa××sīsies jau kantēt kuri tieši. Tas jau viņa jeb*u pataisīs trīsreiz-piecreiz garāku. Grūti iedomāties hostu, kur te tas būtu tik aktuāli vienkāršai lapai. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted March 25, 2011 Report Share Posted March 25, 2011 Vai tad BruteForce nenotiek, kad "database dump" jau ir ļaundara datorā? Vai arī ko nesapratu no mounkuls teiktā... Quote Link to comment Share on other sites More sharing options...
mounkuls Posted March 25, 2011 Report Share Posted March 25, 2011 (edited) Kad database dump ir datorā, kur ir jēga ko brutot vispār? Jēga brutot ir intuitīvos nikus pielietot kā hašošanas komponentu, mēģinot nahļavno sakritību pašam hašam un reģistrēt atrasto sakritību. Tas ir gana resursrijīgs process mājas datorā lai sadabūtu array ar derīgajie passwords kādam konkrētam username un tikai tad tos jau var gāzt pašrakstītā skriptā lai atrok reālu login+password. Nu gan jau ir arī optimālāki verķi, kuri vienalga dara to pašu, tikai bez Tavas piedalīšanās tādā mērā, atļaujot Tev palūrēt logus veiksmīgiem rezultātiem un tai pat laikā papildinot varoņu datubāzi ātrākiem meklējumiem. Ļoti fiksos mājas datoros to var pietiekami ātri lai tas būtu tā vērts, tāpēc ir visādi md5(md5(data)) vai sha(), taču jēga jau ir tāda, ka nevajag ļaut ļaundarim ielogoties vai lietot kādu hašotu id lietotājam, ja ļaundaris to ir spējīgs paveikt gana ātri jeb pirms sesija mirst. Zinot apmēram šo visu, kur ir problēma izjāt tos varoņus ar viņu progrrammu ātri paveikto darbu, kasd patiesībā nafig izrādīsies nederīgs. Šis viss manis rakstītais attiecas uz padarīšanu, kuru minēju agrāk, "sajātu" stringu. Aleksejs bija labi sarakstijis agrāk par drošību, pameklē viņa tēmu par to. database būs ļoti pamatīga(vairākas gigas) tādai pietiekami vērtai brutošanai, ar vidēji 10 chars uz lauku + pasrag Dievs vēl e-pastiem. Edited March 25, 2011 by mounkuls Quote Link to comment Share on other sites More sharing options...
Rincewind Posted March 25, 2011 Report Share Posted March 25, 2011 A kā jums variants ka katram ierakstam ir savs atšķirīgs salt? $salt=md5(uniqid()), $password = md5($salt.$password) un abus glabāt datubāzē? Bruteforce masveidā nestrādās, jālauž katra parole atsevišķi. Vēl drošībai var kaut kur php failā papildus salt ielikt, kas būs visiem vienāds. Quote Link to comment Share on other sites More sharing options...
mounkuls Posted March 25, 2011 Report Share Posted March 25, 2011 Viss jau ir ok, tikai ņemam vērā faktu, ka arī php būs to katru reizi tādā pat ceļā jākož vaļā. Varbūt tas būs ātrāk, varbūt arī ne, man pagaidām liekas, ka tomēr būs lēnāk. Quote Link to comment Share on other sites More sharing options...
Rincewind Posted March 25, 2011 Report Share Posted March 25, 2011 Tāpat tak jāhešo vaļā, kāda starpība return md5($salt1.$salt2.$password)===$db_password; vai return md5($password)===$db_password; Jautājums vairāk par savu salt katram lietotājam, vai tas ir efektīvs veids kā sargāt paroles? Quote Link to comment Share on other sites More sharing options...
mounkuls Posted March 25, 2011 Report Share Posted March 25, 2011 Kāda jēga? Uzģenerē tad katram lietotājam paduses pumpu un vadoties pēc date("d") piešņorē no sava super array by day to salt. Efektīvs tas būs tad, ja pašiem lietotājiem spēsi iemācīt to, ka tas ir nepieciešams Tavas lapas superdrošībai, par ko es tomēr šaubos, lietotāji nevēlas būt apgrūtināti un par to viņiem ir taisnība tomēr. Ja lietotājs to apzinās un tam piekrīt, vari pašu superduper hašu viņam sataisī, bet ja nu lietotājam(kā tas vairumā gadījumu ir), to nafig nevajag... Tu jau paliec par m*daku. Quote Link to comment Share on other sites More sharing options...
Rincewind Posted March 25, 2011 Report Share Posted March 25, 2011 Kādiem vēl lietotājiem? Hakeriem!!! Kuri nospēruši datubazi kopā ar serveri, monitoru un divām alus pudelēm! Quote Link to comment Share on other sites More sharing options...
Aleksejs Posted March 25, 2011 Report Share Posted March 25, 2011 Ricewind, atšķirība ir "vārdnīcās". Stingri runājot, ja ļaudis patiešām katru reizi izvēlētos garu, neuzminamu paroli, tad sālīšanai būtu mazāka jēga, jo patiešām paroļu prekalkulēto attēlu vārdnīcās diezin vai glabāsies: *&^sasdD.~yutuc&^&%^%^SDs7DK[] un tam priekšā pieliekot sāli: *&sljha73hjasq2we8cs9cyqw3rf3 būtiski neko neiegūsim, taču, ja lietotājs izvēlas paroli: qwerty tad gan ir milzu starpība, vai mēs piekabinām priekšā to "*&sljha73hjasq2we8cs9cyqw3rf3" vai nepiekabinām. Tas tā - nepieskaroties tēmai, ka md5() nevajadzētu vairs nekam jaunam lietot. Parolēm tagad iesaka: bcrypt() vai scrypt() (nē tās nav šifrēšanas funkcijas, bet gan hash funkcijas) http://krikulis.posterous.com/ka-drosi-glabat-paroles-datubaze Quote Link to comment Share on other sites More sharing options...
mounkuls Posted March 25, 2011 Report Share Posted March 25, 2011 Fiška jau vienkārša - svarīgai lietotājaprāt lapai, ņems vērā ieteikumus un pat preģenerētas paroles jau ievaddlaukā, bet nevērtai var nospiest divreiz ENTER un ja vajag netukšu, tad pārbraukst tipa QWERTY pāri klavai. Tāpēc doma pielietot kādu identisku(arī jūzrim var) sāli, doma nav tā sliktākā nemaz. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.