ທ່ານຕ້ອງບໍ່ເຄີຍຮັກສາລະຫັດຜ່ານເປັນຂໍ້ຄວາມທໍາມະດາໃນຂະນະທີ່ຢືນຢັນຜູ້ໃຊ້ຫຼືເຮັດບາງສິ່ງບາງຢ່າງທີ່ຄ້າຍຄືກັນ.
ເນື່ອງຈາກບຸກຄົນຫຼາຍຄົນໃຊ້ລະຫັດຜ່ານດຽວກັນ, ຖ້າຜູ້ໂຈມຕີຄົ້ນພົບຖານຂໍ້ມູນຂອງລະຫັດຜ່ານທີ່ບໍ່ໄດ້ເຂົ້າລະຫັດ, ພວກເຂົາສາມາດຖືກນໍາໃຊ້ຮ່ວມກັນກັບອີເມວທີ່ກົງກັນເພື່ອເຂົ້າໄປໃນເວັບໄຊທ໌ຫຼືບັນຊີທີ່ເຊື່ອມໂຍງແລະແມ້ກະທັ້ງໃຊ້ເພື່ອພະຍາຍາມເຂົ້າເຖິງບັນຊີອື່ນ.
ລະຫັດຜ່ານມັກຈະຖືກ hashed ໃນມື້ນີ້ເມື່ອມີການສະຫນອງລະຫັດຜ່ານ. ມັນໄດ້ຖືກແນະນໍາໃຫ້ hash ກັບເກືອແລະຮັກສາເກືອຮ່ວມກັນກັບລະຫັດຜ່ານ hashed.
Salting ອາດຈະເບິ່ງຄືວ່າເປັນຂັ້ນຕອນຫນຶ່ງໃນສູດສໍາລັບ hash browns, ແຕ່ໃນ cryptography, ມັນຫມາຍເຖິງການເພີ່ມຂໍ້ມູນແບບສຸ່ມໃສ່ການປ້ອນຂໍ້ມູນຂອງ hash ເພື່ອຮັບປະກັນວ່າ hash ສະເຫມີໃຫ້ຜົນໄດ້ຮັບທີ່ເປັນເອກະລັກເຖິງແມ່ນວ່າ inputs ຈະຄືກັນ.
ດັ່ງນັ້ນ, hash ທີ່ໂດດເດັ່ນທີ່ສ້າງຂຶ້ນໂດຍການເພີ່ມເກືອສາມາດປ້ອງກັນພວກເຮົາຈາກວິທີການໂຈມຕີຫຼາຍ, ລວມທັງການໂຈມຕີຕາຕະລາງ hash, ໃນຂະນະທີ່ stifling dictionary ແລະ brute-force offline ຄວາມພະຍາຍາມ.
ທີ່ນີ້, ດ້ວຍການຊ່ວຍເຫຼືອຂອງ snippets ລະຫັດ, ພວກເຮົາຈະສະແດງໃຫ້ເຫັນວິທີການນໍາໃຊ້ 'bcrypt' ເພື່ອຮັບປະກັນລະຫັດຜ່ານຂອງທ່ານ.
ດັ່ງນັ້ນ, 'bcrypt' ແມ່ນຫຍັງ?
Bcrypt ເປັນຫ້ອງສະໝຸດ hashing ທີ່ຮອງຮັບຫຼາຍພາສາ ແລະສະໜອງການເຂົ້າລະຫັດລັບພິເສດ. ເພື່ອເພີ່ມຄວາມປອດໄພຂອງລະຫັດຜ່ານຂອງທ່ານ, ມັນຈະຜະລິດຕົວອັກສອນສຸ່ມເພີ່ມເຕີມ (ເກືອ) ໂດຍອັດຕະໂນມັດເມື່ອເຂົ້າລະຫັດສະຕຣິງຂອງທ່ານ.
ນອກນັ້ນທ່ານຍັງສາມາດເລືອກທີ່ຈະກໍານົດຈໍານວນຕົວອັກສອນເພີ່ມເຕີມທີ່ທ່ານຕ້ອງການທີ່ຈະເພີ່ມໃສ່ສາຍທີ່ເຂົ້າມາ.
ຫ້ອງສະໝຸດ bcrypt ພຽງແຕ່ອ່ານລະຫັດ byte, ບໍ່ແມ່ນສະຕຣິງດິບ. ດັ່ງນັ້ນ, ກ່ອນທີ່ຈະສົ່ງ string ລະຫັດຜ່ານເຂົ້າມາເພື່ອ bcrypt ສໍາລັບການເຂົ້າລະຫັດ, ກ່ອນອື່ນ ໝົດ ທ່ານຕ້ອງເຂົ້າລະຫັດມັນ.
ການເຂົ້າລະຫັດແລະການເຂົ້າລະຫັດບໍ່ແມ່ນສິ່ງດຽວກັນ. ມັນພຽງແຕ່ເຮັດໃຫ້ແນ່ໃຈວ່າສະຕຣິງແມ່ນເຄື່ອງສາມາດອ່ານໄດ້ກ່ອນທີ່ຈະຖືກປົກຄຸມໂດຍເຕັກນິກການເຂົ້າລະຫັດ.
ໃຊ້ bcrypt ເພື່ອເຂົ້າລະຫັດລັບໃນ Python
Python ເຮັດໃຫ້ການເຂົ້າລະຫັດລັບ bcrypt ງ່າຍດາຍ. ພວກເຮົາຈະສຸມໃສ່ການເຮັດສິ່ງນີ້ໂດຍບໍ່ມີການຊ່ວຍເຫຼືອຂອງກອບ. ແຕ່ຢ່າກັງວົນ, ຖ້າທ່ານເຂົ້າໃຈວິທີການບັນທຶກຂໍ້ມູນຂອງຜູ້ໃຊ້ແລະອ່ານມັນຈາກຖານຂໍ້ມູນ, ຂັ້ນຕອນແມ່ນຄືກັນໃນກອບ.
ການຕິດຕັ້ງ
ທ່ານພຽງແຕ່ຕ້ອງຕັ້ງຄ່າສະພາບແວດລ້ອມ virtual Python ແລະຫຼັງຈາກນັ້ນນໍາໃຊ້ IDE ເຊັ່ນ PyCharm. ຫຼັງຈາກນັ້ນ, ຫ້ອງສະຫມຸດຕ້ອງໄດ້ຮັບການຕິດຕັ້ງທໍາອິດ:
ການເຂົ້າລະຫັດລັບ
ເຮົາມາເບິ່ງວິທີໃຊ້ bcrypt ເພື່ອເຂົ້າລະຫັດຂໍ້ຄວາມ ຫຼັງຈາກທີ່ມັນໄດ້ຖືກຕິດຕັ້ງແລ້ວ:
ລະຫັດ Python ທີ່ໄດ້ກ່າວມາຂ້າງເທິງນີ້ປະຕິບັດ ແລະສົ່ງຜົນອອກເປັນສະຕຣິງ byte ທີ່ເຂົ້າລະຫັດໄວ້. ແຕ່ທຸກໆຄັ້ງທີ່ທ່ານແລ່ນສະຄິບ, ຜົນໄດ້ຮັບແມ່ນແຕກຕ່າງກັນ. Bcrypt ໃຊ້ວິທີນີ້ເພື່ອໃຫ້ແນ່ໃຈວ່າຜູ້ໃຊ້ທຸກຄົນມີລະຫັດຜ່ານທີ່ຖືກເຂົ້າລະຫັດໂດຍສະເພາະ.
ວ່າ, ບັງເອີນ, ແມ່ນສໍາລັບການເຂົ້າລະຫັດລັບ.
ການປຽບທຽບລະຫັດຜ່ານແລະການຢືນຢັນໂດຍໃຊ້ Bcrypt
ຈະເກີດຫຍັງຂຶ້ນຫາກທ່ານຕ້ອງການບັນທຶກລະຫັດຜ່ານທີ່ hashed ແລະກວດເບິ່ງໃນພາຍຫຼັງເພື່ອເບິ່ງວ່າມັນກົງກັບລະຫັດຜ່ານທີ່ຜູ້ໃຊ້ສົ່ງມາເພື່ອການພິສູດຢືນຢັນຫຼືບໍ່?
ນັ້ນແມ່ນງ່າຍດາຍ. ພຽງແຕ່ລະຫັດຜ່ານການພິສູດຢືນຢັນຕ້ອງຖືກປຽບທຽບກັບການເຂົ້າຂອງຖານຂໍ້ມູນ (ຫຼືໃນຫນ່ວຍຄວາມຈໍາໃນກໍລະນີນີ້).
ລະຫັດຜ່ານການພິສູດຢືນຢັນຕ້ອງຖືກເຂົ້າລະຫັດກ່ອນທີ່ຈະຖືກປຽບທຽບກັບລະຫັດໃນຖານຂໍ້ມູນເພາະວ່າ bcrypt ສາມາດອ່ານພຽງແຕ່ byte strings. ໂດຍພື້ນຖານແລ້ວ, ທ່ານຈະປຽບທຽບການຢືນຢັນການເຂົ້າລະຫັດກັບລະຫັດຜ່ານ hashed ທີ່ເຂົ້າລະຫັດທີ່ທ່ານມີຢູ່ໃນຖານຂໍ້ມູນຂອງທ່ານ.
ມາທົດສອບນີ້ໂດຍໃຊ້ Python inputs ປອມ:
ເມື່ອແລ່ນລະຫັດທີ່ໄດ້ກ່າວມາຂ້າງເທິງ, ທ່ານໄດ້ຮັບການແຈ້ງເຕືອນສໍາລັບລະຫັດຜ່ານໃຫມ່. ອັນນີ້ຖືກບັນທຶກໄວ້ໃນຄວາມຊົງຈໍາໂດຍ Python. ໃນພາກການພິສູດຢືນຢັນ, ຫຼັງຈາກນັ້ນທ່ານຈະໃສ່ລະຫັດຜ່ານດຽວກັນ, ຊຶ່ງເປັນສ່ວນຕົວສໍາລັບທ່ານ.
ຖ້າລະຫັດຜ່ານຖືກປຽບທຽບແລະລະຫັດທີ່ຖືກເຂົ້າລະຫັດກ່ອນຫນ້ານີ້ແລະບັນທຶກການຈັບຄູ່, Python ປ່ອຍຂໍ້ຄວາມສໍາເລັດ.
ຖ້າບໍ່ແມ່ນ, ຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດຈະຖືກພິມອອກແລະຫຼັງຈາກນັ້ນປະໂຫຍກອື່ນຈະຖືກເພີ່ມ.
ແນວຄວາມຄິດພື້ນຖານແມ່ນຄືກັນກັບການລົງທະບຽນແລະຫຼັງຈາກນັ້ນການສະຫນອງລະຫັດຜ່ານໃຫ້ກັບຖານຂໍ້ມູນສໍາລັບການກວດສອບຄວາມຖືກຕ້ອງ.
ສະຫຼຸບ
ເຖິງແມ່ນວ່າພວກເຮົາພຽງແຕ່ໃຊ້ລະຫັດຜ່ານທີ່ຖືກເຂົ້າລະຫັດເພື່ອສະແດງໃຫ້ເຫັນວ່າການທໍາງານຂອງ bcrypt ໃນຄວາມຊົງຈໍາສັ້ນ Python ທໍາມະດາ, ການປະຕິບັດຕົວຈິງຂອງມັນແມ່ນຢູ່ໃນແອັບຯຜູ້ໃຊ້.
ຢ່າງໃດກໍຕາມ, ບົດຄວາມນີ້ສະແດງໃຫ້ເຫັນວິທີການທີ່ສໍາຄັນໃນການຈັດລະບຽບລະຫັດຂອງທ່ານເພື່ອເຮັດສໍາເລັດນີ້, ເຖິງແມ່ນວ່າໃນສະຖານະການທີ່ແທ້ຈິງ.
ຕົວຢ່າງເຊັ່ນ, ຖ້າທ່ານກໍາລັງໃຊ້ Flask, ທ່ານສາມາດສະຫນອງການລົງທະບຽນແລະການກວດສອບຄວາມຖືກຕ້ອງຜ່ານແບບຟອມເວັບແຍກຕ່າງຫາກແທນທີ່ຈະໃສ່ຂໍ້ມູນ.
ແນ່ນອນ, ໃນຂະນະທີ່ປຽບທຽບລະຫັດຜ່ານ, ທ່ານຈະອ່ານຈາກຖານຂໍ້ມູນທີ່ມີລະຫັດຜ່ານທີ່ຖືກເຂົ້າລະຫັດທີ່ເກັບໄວ້ໃນໂລກທີ່ແທ້ຈິງ.
Jona Nitsch
ຂອບໃຈສໍາລັບຄໍາອະທິບາຍທີ່ງ່າຍດາຍແລະງ່າຍດາຍນີ້,
ນີ້ຊ່ວຍຂ້ອຍຫຼາຍໃນໂຄງການປະຈຸບັນຂອງຂ້ອຍ.
ຂ້າພະເຈົ້າຄິດວ່າມັນດີຫຼາຍທີ່ລະຫັດຕົວຢ່າງຖືກຈໍາກັດຢູ່ໃນຕໍາ່ສຸດທີ່ເປົ່າແລະບໍ່ overloaded ເຊັ່ນຄໍາອະທິບາຍອື່ນໆຈໍານວນຫຼາຍ.
ກ່ຽວທີ່ດີທີ່ສຸດ