Jump to content
php.lv forumi

Šifrēšanas funkcija hash("md5","teksts"); vs md5("


djmartins

Recommended Posts

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()!

Link to comment
Share on other sites

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? :)

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 by mounkuls
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...