អ្នកមិនត្រូវរក្សាពាក្យសម្ងាត់ជាអត្ថបទធម្មតាឡើយ ខណៈពេលដែលបញ្ជាក់អ្នកប្រើប្រាស់ ឬធ្វើអ្វីមួយដែលស្រដៀងគ្នា។
ដោយសារបុគ្គលជាច្រើនប្រើពាក្យសម្ងាត់ដូចគ្នា ប្រសិនបើអ្នកវាយប្រហាររកឃើញមូលដ្ឋានទិន្នន័យនៃពាក្យសម្ងាត់ដែលមិនបានអ៊ិនគ្រីប ពួកគេអាចប្រើយ៉ាងងាយស្រួលក្នុងការភ្ជាប់ជាមួយអ៊ីមែលដែលត្រូវគ្នា ដើម្បីចូលទៅក្នុងគេហទំព័រ ឬគណនីដែលបានភ្ជាប់ ហើយថែមទាំងប្រើដើម្បីព្យាយាមចូលប្រើគណនីផ្សេងទៀត។
ពាក្យសម្ងាត់ត្រូវបានគេលួចចូលជាញឹកញាប់នៅថ្ងៃនេះនៅពេលដែលលេខសម្ងាត់ត្រូវបានផ្តល់។ វាត្រូវបានណែនាំអោយហាន់ជាមួយអំបិល ហើយរក្សាអំបិលរួមជាមួយនឹងលេខសំងាត់ដែល hashed ។
Salting ហាក់ដូចជាជំហានមួយនៅក្នុងរូបមន្តសម្រាប់ hash browns ប៉ុន្តែនៅក្នុង cryptography វាសំដៅលើការបន្ថែមទិន្នន័យចៃដន្យទៅការបញ្ចូលរបស់ hash function ដើម្បីធានាថា hash នឹងតែងតែផ្តល់នូវលទ្ធផលតែមួយគត់ ទោះបីជាការបញ្ចូលគឺដូចគ្នាបេះបិទក៏ដោយ។
ជាលទ្ធផល hash ប្លែកៗដែលបង្កើតឡើងដោយការបន្ថែមអំបិលអាចការពារយើងពីវិធីសាស្ត្រវាយប្រហារជាច្រើន រួមទាំងការវាយលុកតារាង hash ខណៈពេលដែលរារាំងវចនានុក្រម និងការប៉ុនប៉ងក្រៅបណ្តាញ brute-force ។
នៅទីនេះ ដោយមានជំនួយពីផ្នែកខ្លីៗនៃកូដ យើងនឹងបង្ហាញពីរបៀបប្រើ 'bcrypt' ដើម្បីការពារពាក្យសម្ងាត់របស់អ្នក។
ដូច្នេះតើ 'bcrypt' គឺជាអ្វី?
Bcrypt គឺជាបណ្ណាល័យ hashing ដែលគាំទ្រភាសាជាច្រើន និងផ្តល់នូវការអ៊ិនគ្រីបពាក្យសម្ងាត់ពិសេស។ ដើម្បីបង្កើនសុវត្ថិភាពនៃពាក្យសម្ងាត់របស់អ្នក វាបង្កើតតួអក្សរចៃដន្យបន្ថែម (អំបិល) ដោយស្វ័យប្រវត្តិ នៅពេលអ៊ិនគ្រីបខ្សែអក្សររបស់អ្នក។
អ្នកក៏អាចជ្រើសរើសដើម្បីកំណត់ចំនួនតួអក្សរបន្ថែមដែលអ្នកចង់បន្ថែមទៅខ្សែអក្សរចូល។
បណ្ណាល័យ bcrypt អានតែកូដបៃ មិនមែនខ្សែអក្សរឆៅទេ។ ដូច្នេះ មុននឹងបញ្ជូនខ្សែអក្សរពាក្យសម្ងាត់ចូល bcrypt សម្រាប់ការអ៊ិនគ្រីប អ្នកត្រូវតែអ៊ិនកូដវាជាមុនសិន។
ការអ៊ិនគ្រីប និងការអ៊ិនកូដមិនមែនជារឿងដូចគ្នានោះទេ។ វាគ្រាន់តែធ្វើឱ្យប្រាកដថាខ្សែអក្សរអាចអានដោយម៉ាស៊ីន មុនពេលត្រូវបានគ្របដណ្តប់ដោយបច្ចេកទេសអ៊ិនគ្រីប។
ការប្រើប្រាស់ bcrypt ដើម្បីអ៊ិនគ្រីបពាក្យសម្ងាត់នៅក្នុង Python
Python ធ្វើឱ្យការអ៊ិនគ្រីបពាក្យសម្ងាត់ bcrypt សាមញ្ញ។ យើងនឹងផ្តោតលើការធ្វើវាដោយគ្មានជំនួយពីក្របខណ្ឌ។ ប៉ុន្តែកុំបារម្ភ ប្រសិនបើអ្នកយល់ពីរបៀបរក្សាទុកធាតុចូលរបស់អ្នកប្រើប្រាស់ និងអានពួកវាពីមូលដ្ឋានទិន្នន័យ នោះនីតិវិធីគឺដូចគ្នានៅក្នុងក្របខ័ណ្ឌ។
ការដំឡើង
អ្នកគ្រាន់តែត្រូវរៀបចំបរិស្ថាននិម្មិត Python ហើយបន្ទាប់មកប្រើ IDE ដូចជា PyCharm ។ បន្ទាប់មកបណ្ណាល័យត្រូវតែដំឡើងជាមុនសិន៖
ការអ៊ិនគ្រីបពាក្យសម្ងាត់
តោះមើលពីរបៀបប្រើ bcrypt ដើម្បីអ៊ិនគ្រីបអត្ថបទបន្ទាប់ពីវាត្រូវបានដំឡើង៖
កូដ Python ដែលបានរៀបរាប់ខាងលើប្រតិបត្តិ និងបញ្ចេញខ្សែអក្សរបៃដែលបានអ៊ិនគ្រីប។ ប៉ុន្តែរាល់ពេលដែលអ្នកដំណើរការស្គ្រីប លទ្ធផលគឺខុសគ្នា។ Bcrypt ប្រើវិធីនេះដើម្បីប្រាកដថាអ្នកប្រើប្រាស់គ្រប់រូបមានពាក្យសម្ងាត់ដែលត្រូវបានអ៊ិនគ្រីបជាពិសេស។
នោះដោយចៃដន្យគឺសម្រាប់ការអ៊ិនគ្រីបពាក្យសម្ងាត់។
ការប្រៀបធៀបពាក្យសម្ងាត់ និងការបញ្ជាក់ដោយប្រើ Bcrypt
តើមានអ្វីកើតឡើង ប្រសិនបើអ្នកចង់រក្សាទុកពាក្យសម្ងាត់ដែល hashed ហើយពិនិត្យមើលនៅពេលក្រោយដើម្បីមើលថាតើវាត្រូវគ្នានឹងពាក្យសម្ងាត់ដែលអ្នកប្រើប្រាស់បានដាក់ស្នើសម្រាប់ការផ្ទៀងផ្ទាត់ដែរឬទេ?
នោះជារឿងសាមញ្ញ។ មានតែពាក្យសម្ងាត់ផ្ទៀងផ្ទាត់ប៉ុណ្ណោះដែលត្រូវប្រៀបធៀបទៅនឹងធាតុរបស់មូលដ្ឋានទិន្នន័យ (ឬក្នុងអង្គចងចាំក្នុងករណីនេះ)។
ការផ្ទៀងផ្ទាត់ពាក្យសម្ងាត់ត្រូវតែត្រូវបានអ៊ិនកូដផងដែរ មុនពេលត្រូវបានប្រៀបធៀបទៅនឹងពាក្យសម្ងាត់នៅក្នុងមូលដ្ឋានទិន្នន័យ ពីព្រោះ bcrypt អាចអានបានតែខ្សែអក្សរបៃប៉ុណ្ណោះ។ ជាមូលដ្ឋាន អ្នកនឹងប្រៀបធៀបការបញ្ចូលការផ្ទៀងផ្ទាត់ដែលបានអ៊ិនកូដទៅនឹងពាក្យសម្ងាត់ដែលបានអ៊ិនកូដដែលអ្នកមាននៅក្នុងមូលដ្ឋានទិន្នន័យរបស់អ្នក។
តោះសាកល្បងវាដោយប្រើការបញ្ចូល Python ប្រឌិត៖
នៅពេលដំណើរការកូដដែលបានរៀបរាប់ខាងលើ អ្នកត្រូវបានសួររកពាក្យសម្ងាត់ថ្មី។ វាត្រូវបានរក្សាទុកក្នុងការចងចាំដោយ Python ។ នៅក្នុងផ្នែកផ្ទៀងផ្ទាត់ អ្នកនឹងបញ្ចូលពាក្យសម្ងាត់ដូចគ្នា ដែលជាឯកជនសម្រាប់អ្នក។
ប្រសិនបើពាក្យសម្ងាត់ត្រូវបានប្រៀបធៀប ហើយពាក្យសម្ងាត់ដែលត្រូវបានអ៊ិនគ្រីបពីមុន និងរក្សាទុកការប្រកួតនោះ Python បញ្ចេញសារជោគជ័យ។
ប្រសិនបើមិនមានទេ សារកំហុសត្រូវបានបោះពុម្ពចេញ ហើយបន្ទាប់មកប្រយោគផ្សេងទៀតត្រូវបានបន្ថែម។
គំនិតជាមូលដ្ឋានគឺដូចគ្នាបេះបិទទៅនឹងការចុះឈ្មោះ ហើយបន្ទាប់មកផ្តល់ពាក្យសម្ងាត់ទៅកាន់មូលដ្ឋានទិន្នន័យសម្រាប់ការផ្ទៀងផ្ទាត់។
សន្និដ្ឋាន
ទោះបីជាយើងបានប្រើពាក្យសម្ងាត់ដែលបានអ៊ិនគ្រីបយ៉ាងសាមញ្ញដើម្បីបង្ហាញពីរបៀបដែលមុខងារ bcrypt នៅក្នុងអង្គចងចាំខ្លី Python ធម្មតាក៏ដោយ ការអនុវត្តជាក់ស្តែងរបស់វាស្ថិតនៅក្នុងកម្មវិធីមូលដ្ឋានអ្នកប្រើប្រាស់។
ទោះជាយ៉ាងណាក៏ដោយ អត្ថបទនេះបង្ហាញពីវិធីសាស្រ្តសំខាន់ៗក្នុងការរៀបចំកូដរបស់អ្នកដើម្បីសម្រេចវា សូម្បីតែនៅក្នុងកាលៈទេសៈជាក់ស្តែងក៏ដោយ។
ឧទាហរណ៍ ប្រសិនបើអ្នកកំពុងប្រើ Flask អ្នកអាចផ្តល់នូវវាលចុះឈ្មោះ និងការផ្ទៀងផ្ទាត់តាមរយៈទម្រង់បណ្ដាញដាច់ដោយឡែកជំនួសឱ្យការបញ្ចូល។
ជាការពិតណាស់ ខណៈពេលដែលការប្រៀបធៀបពាក្យសម្ងាត់ អ្នកនឹងអានពីមូលដ្ឋានទិន្នន័យដែលមានពាក្យសម្ងាត់ដែលបានអ៊ិនគ្រីបដែលត្រូវបានរក្សាទុកនៅក្នុងពិភពពិត។
Jona Nitsch
សូមអរគុណចំពោះការពន្យល់ដ៏សាមញ្ញ និងសាមញ្ញនេះ
នេះបានជួយខ្ញុំច្រើនក្នុងគម្រោងបច្ចុប្បន្នរបស់ខ្ញុំ។
ខ្ញុំគិតថាវាជាការល្អណាស់ដែលកូដឧទាហរណ៍ត្រូវបានកំណត់ត្រឹមកម្រិតអប្បបរមា ហើយមិនផ្ទុកលើសទម្ងន់ដូចការពន្យល់ជាច្រើនផ្សេងទៀត។
ទាក់ទងល្អបំផុត