Ni ddylech byth gadw cyfrinair mewn testun plaen wrth gadarnhau defnyddiwr neu wneud rhywbeth tebyg.
Gan fod llawer o unigolion yn defnyddio'r un cyfrinair, os yw ymosodwr yn darganfod cronfa ddata o gyfrineiriau heb eu hamgryptio, gellir eu defnyddio'n hawdd ar y cyd â negeseuon e-bost cyfatebol i fynd i mewn i'r wefan neu'r cyfrif cysylltiedig a hyd yn oed eu defnyddio i geisio cyrchu cyfrifon eraill.
Mae cyfrineiriau yn aml yn cael eu stwnsio heddiw pan ddarperir cyfrinair. Fe'ch cynghorir i stwnsio â halen a chadw'r halen ynghyd â'r cyfrinair stwnsh.
Gallai halltu ymddangos fel un o'r camau mewn rysáit ar gyfer brown hash, ond mewn cryptograffeg, mae'n cyfeirio at ychwanegu data ar hap i fewnbwn ffwythiant hash i sicrhau y bydd yr hash bob amser yn darparu canlyniad unigryw hyd yn oed os yw'r mewnbynnau yn union yr un fath.
O ganlyniad, gall y stwnsh nodedig a grëir trwy ychwanegu'r halen ein hamddiffyn rhag sawl dull ymosod, gan gynnwys ymosodiadau bwrdd stwnsh, wrth fygu geiriadur ac ymdrechion all-lein 'n Ysgrublaidd.
Yma, gyda chymorth pytiau cod, byddwn yn dangos sut i ddefnyddio 'bcrypt' i ddiogelu'ch cyfrineiriau.
Felly, beth yw 'bcrypt'?
Mae Bcrypt yn llyfrgell stwnsio sy'n cefnogi sawl iaith ac yn darparu amgryptio cyfrinair arbennig. Er mwyn cynyddu diogelwch eich cyfrinair, mae'n cynhyrchu nodau ar hap ychwanegol (halen) yn awtomatig wrth amgryptio'ch llinyn.
Gallwch hefyd ddewis diffinio faint o nodau ychwanegol yr hoffech eu hychwanegu at linyn sy'n dod i mewn.
Mae'r llyfrgell bcrypt yn darllen cod beit yn unig, nid llinynnau crai. Felly, cyn cyflwyno llinyn cyfrinair sy'n dod i mewn i bcrypt ar gyfer amgryptio, rhaid i chi yn gyntaf ei amgodio.
Nid yr un pethau yw amgryptio ac amgodio. Mae'n sicrhau bod llinyn yn ddarllenadwy gan beiriant cyn cael ei orchuddio gan dechneg amgryptio.
Defnyddio bcrypt i Amgryptio Cyfrinair yn Python
Mae Python yn gwneud amgryptio cyfrinair bcrypt yn syml. Byddwn yn canolbwyntio ar wneud hyn heb gymorth fframwaith. Ond peidiwch â phoeni, os ydych chi'n deall sut i arbed mewnbynnau defnyddwyr a'u darllen o'r gronfa ddata, mae'r weithdrefn yr un peth mewn fframweithiau.
Gosod
Does ond angen i chi sefydlu amgylchedd rhithwir Python ac yna defnyddio IDE fel PyCharm. Yna rhaid gosod y llyfrgell yn gyntaf:
Amgryptio cyfrinair
Gadewch i ni weld sut i ddefnyddio bcrypt i amgryptio testun ar ôl iddo gael ei osod:
Mae'r cod Python a grybwyllwyd uchod yn gweithredu ac yn allbynnu llinyn beit wedi'i amgryptio. Ond bob tro y byddwch chi'n rhedeg y sgript, mae'r canlyniad yn wahanol. Mae Bcrypt yn defnyddio'r dull hwn i sicrhau bod gan bob defnyddiwr gyfrinair sydd wedi'i amgryptio'n benodol.
Mae hynny, gyda llaw, ar gyfer amgryptio cyfrinair.
Cymharu Cyfrinair a Chadarnhau Gan Ddefnyddio Bcrypt
Beth sy'n digwydd os ydych am gadw'r cyfrinair stwnsh a gwirio'n ddiweddarach i weld a yw'n cyfateb i'r cyfrinair a gyflwynwyd gan ddefnyddiwr i'w ddilysu?
Mae hynny'n syml. Dim ond y cyfrinair dilysu y mae'n rhaid ei gymharu â chofnod y gronfa ddata (neu er cof yn yr achos hwn).
Rhaid amgodio'r cyfrinair dilysu hefyd cyn ei gymharu â'r un yn y gronfa ddata oherwydd dim ond llinynnau beit y gall bcrypt ddarllen. Yn y bôn, byddwch yn cymharu mewnbwn dilysu wedi'i amgodio â'r cyfrinair stwnsh wedi'i amgodio sydd gennych ar hyn o bryd yn eich cronfa ddata.
Gadewch i ni brofi hyn trwy ddefnyddio mewnbynnau Python ffug:
Ar ôl rhedeg y cod uchod, fe'ch anogir am gyfrinair newydd. Mae hyn yn cael ei gadw yn y cof gan Python. Yn yr adran ddilysu, byddwch wedyn yn nodi'r un cyfrinair, sy'n breifat i chi.
Os caiff y cyfrinair ei gymharu a'r un a amgryptiowyd yn flaenorol ac achub y gêm, mae Python yn allyrru neges llwyddiant.
Os na, caiff y neges gwall ei hargraffu ac yna ychwanegir y frawddeg arall.
Mae'r syniad sylfaenol yn union yr un fath â'r syniad o gofrestru ac yna rhoi cyfrinair i gronfa ddata i'w ddilysu.
Casgliad
Hyd yn oed er ein bod wedi defnyddio cyfrineiriau wedi'u hamgryptio yn syml i ddangos sut mae bcrypt yn gweithredu mewn cof byr Python plaen, mae ei wir gymhwysedd yn gorwedd mewn apiau sylfaen defnyddwyr.
Serch hynny, mae'r erthygl hon yn dangos y dulliau hanfodol i drefnu'ch cod i gyflawni hyn, hyd yn oed mewn amgylchiadau byd go iawn.
Er enghraifft, os ydych chi'n defnyddio Fflasg, gallwch chi ddarparu'r meysydd cofrestru a dilysu trwy ffurflenni gwe ar wahân yn lle mewnbynnau.
Wrth gwrs, wrth gymharu cyfrineiriau, byddwch yn darllen o gronfa ddata sy'n cynnwys cyfrineiriau wedi'u hamgryptio sy'n cael eu cadw yn y byd go iawn.
Jona Nitsch
Diolch am yr esboniad syml a syml hwn,
Roedd hyn yn help mawr i mi yn fy mhrosiect presennol.
Rwy'n credu ei bod yn dda iawn bod y cod enghreifftiol wedi'i gyfyngu i'r lleiafswm noeth ac nad yw wedi'i orlwytho fel cymaint o esboniadau eraill.
Cofion gorau