Пайдаланушыны растау немесе ұқсас әрекетті орындау кезінде ешқашан ашық мәтінде құпия сөзді сақтамау керек.
Көптеген адамдар бірдей құпия сөзді пайдаланатындықтан, егер шабуылдаушы шифрланбаған құпия сөздердің дерекқорын тапса, олар байланыстырылған веб-сайтқа немесе тіркелгіге кіру үшін сәйкес электрондық пошталармен бірге оңай пайдаланылуы мүмкін және тіпті басқа тіркелгілерге кіруге тырысуы мүмкін.
Құпиясөздер бүгін берілген кезде жиі хэштелген. Тұзбен хэштеу және тұзды хэштелген құпия сөзбен бірге сақтау ұсынылады.
Тұздау хэш-қоңыр рецептердегі қадамдардың бірі болып көрінуі мүмкін, бірақ криптографияда ол кірістер бірдей болса да, хэш әрқашан бірегей нәтиже беретінін қамтамасыз ету үшін хэш функциясының кірісіне кездейсоқ деректерді қосуды білдіреді.
Нәтижесінде, тұзды қосу арқылы жасалған ерекше хэш бізді бірнеше шабуыл әдістерінен, соның ішінде хэш-кесте шабуылдарынан қорғай алады, сонымен бірге сөздікті және дөрекі күшпен оффлайн әрекеттерді тоқтатады.
Мұнда код үзінділерінің көмегімен құпия сөздерді қорғау үшін «bcrypt» әдісін қалай пайдалану керектігін көрсетеміз.
Сонымен, «bcrypt» дегеніміз не?
Bcrypt - бірнеше тілге қолдау көрсететін және арнайы құпия сөзді шифрлауды қамтамасыз ететін хэштеу кітапханасы. Құпия сөзіңіздің қауіпсіздігін арттыру үшін жолды шифрлау кезінде ол автоматты түрде қосымша кездейсоқ таңбаларды (тұз) шығарады.
Сондай-ақ, кіріс жолға қанша қосымша таңба қосқыңыз келетінін анықтауды таңдауға болады.
bcrypt кітапханасы өңделмеген жолдарды емес, тек байт кодын оқиды. Сондықтан, кіріс құпия сөз жолын шифрлау үшін bcrypt жүйесіне жібермес бұрын, алдымен оны кодтауыңыз керек.
Шифрлау және кодтау бірдей нәрсе емес. Ол шифрлау әдісімен жабылмас бұрын жолдың машинада оқылатынына көз жеткізеді.
Python жүйесінде құпия сөзді шифрлау үшін bcrypt пайдалану
Python bcrypt құпия сөзін шифрлауды қарапайым етеді. Біз мұны құрылымның көмегінсіз жасауға шоғырландырамыз. Бірақ алаңдамаңыз, егер сіз пайдаланушы кірістерін сақтау және оларды дерекқордан оқу жолын түсінсеңіз, процедура фреймворктарда бірдей.
Орнату
Сізге тек Python виртуалды ортасын орнату керек, содан кейін PyCharm сияқты IDE пайдалану керек. Алдымен кітапхананы орнату керек:
Құпия сөзді шифрлау
Орнатылғаннан кейін мәтінді шифрлау үшін bcrypt қалай қолданылатынын көрейік:
Жоғарыда аталған Python коды шифрланған байт жолын орындайды және шығарады. Бірақ сценарийді іске қосқан сайын нәтиже басқаша болады. Bcrypt бұл әдісті әрбір пайдаланушының арнайы шифрланған құпия сөзі бар екеніне көз жеткізу үшін пайдаланады.
Бұл, айтпақшы, парольді шифрлауға арналған.
Bcrypt көмегімен құпия сөзді салыстыру және растау
Егер хэштелген құпия сөзді сақтағыңыз келсе және оның аутентификацияға жіберілген пайдаланушы құпия сөзіне сәйкес келетінін тексеру үшін кейінірек тексергіңіз келсе не болады?
Бұл қарапайым. Тек аутентификация құпия сөзін дерекқор жазбасымен салыстыру керек (немесе бұл жағдайда жадта).
Түпнұсқалық растаушы құпия сөзді дерекқордағымен салыстыру алдында кодтау керек, себебі bcrypt тек байт жолдарын оқи алады. Негізінде, сіз кодталған аутентификация кірісін қазіргі уақытта дерекқорыңызда бар кодталған хэштелген құпия сөзбен салыстырасыз.
Мұны жалған Python кірістерін пайдалану арқылы сынап көрейік:
Жоғарыда аталған кодты іске қосқаннан кейін сізден жаңа құпия сөз сұралады. Бұл Python жадында сақталады. Аутентификация бөлімінде сіз өзіңіз үшін жеке құпия сөзді енгізесіз.
Егер құпия сөз салыстырылса және бұрын шифрланған және сәйкестікті сақтаған болса, Python сәтті хабарды шығарады.
Олай болмаса, қате туралы хабар басып шығарылады, содан кейін else сөйлемі қосылады.
Негізгі идея тіркелу және аутентификация үшін дерекқорға құпия сөзді беру идеясымен бірдей.
қорытынды
Қарапайым Python қысқа жадында bcrypt қалай жұмыс істейтінін көрсету үшін біз жай ғана шифрланған құпия сөздерді пайдаланғанымызға қарамастан, оның нақты қолданылуы пайдаланушы базалық қолданбаларында жатыр.
Осыған қарамастан, бұл мақала нақты әлемдегі жағдайлардың өзінде оны орындау үшін кодты ұйымдастырудың маңызды әдістерін көрсетеді.
Мысалы, Flask пайдалансаңыз, енгізулердің орнына жеке веб-пішіндер арқылы тіркеу және аутентификация өрістерін қамтамасыз ете аласыз.
Әрине, құпия сөздерді салыстыру кезінде сіз нақты әлемде сақталған шифрланған құпия сөздерді қамтитын дерекқордан оқисыз.
Джона Нитч
Осы қарапайым және қарапайым түсініктеме үшін рахмет,
Бұл менің қазіргі жобама көп көмектесті.
Менің ойымша, мысал кодының минималды мәнмен шектелгені және көптеген басқа түсініктемелер сияқты шамадан тыс жүктелмегені өте жақсы.
Ең жақсы тілектер