ব্যবহারকারীকে নিশ্চিত করার সময় বা অনুরূপ কিছু করার সময় আপনাকে কখনই প্লেইন টেক্সটে পাসওয়ার্ড রাখতে হবে না।
যেহেতু অনেক ব্যক্তি একই পাসওয়ার্ড ব্যবহার করে, যদি একজন আক্রমণকারী এনক্রিপ্ট না করা পাসওয়ার্ডের একটি ডাটাবেস আবিষ্কার করে, তাহলে সেগুলি সহজেই লিঙ্ক করা ওয়েবসাইট বা অ্যাকাউন্টে প্রবেশ করার জন্য মিলিত ইমেলের সাথে ব্যবহার করা যেতে পারে এবং এমনকি অন্য অ্যাকাউন্টগুলি অ্যাক্সেস করার চেষ্টা করার জন্যও ব্যবহার করা যেতে পারে।
যখন একটি পাসওয়ার্ড সরবরাহ করা হয় তখন পাসওয়ার্ডগুলি প্রায়শই হ্যাশ করা হয়৷ লবণ দিয়ে হ্যাশ করার পরামর্শ দেওয়া হয় এবং হ্যাশ করা পাসওয়ার্ডের সাথে লবণ একসাথে রাখার পরামর্শ দেওয়া হয়।
সল্টিং হ্যাশ ব্রাউনের জন্য একটি রেসিপির একটি ধাপের মতো মনে হতে পারে, কিন্তু ক্রিপ্টোগ্রাফিতে, এটি হ্যাশ ফাংশনের ইনপুটে র্যান্ডম ডেটা যোগ করাকে বোঝায় যাতে ইনপুটগুলি অভিন্ন হলেও হ্যাশ সর্বদা একটি অনন্য ফলাফল প্রদান করে।
ফলস্বরূপ, লবণ যোগ করে তৈরি করা স্বতন্ত্র হ্যাশ আমাদেরকে বিভিন্ন আক্রমণ পদ্ধতি থেকে রক্ষা করতে পারে, যার মধ্যে হ্যাশ টেবিল অ্যাসাল্ট সহ, অভিধান এবং ব্রুট-ফোর্স অফলাইন প্রচেষ্টাকে দমিয়ে রাখার সময়।
এখানে, কোড স্নিপেটগুলির সাহায্যে, আমরা প্রদর্শন করব কীভাবে আপনার পাসওয়ার্ড সুরক্ষিত করতে 'bcrypt' ব্যবহার করতে হয়।
তাহলে, 'bcrypt' কি?
Bcrypt একটি হ্যাশিং লাইব্রেরি যা বিভিন্ন ভাষা সমর্থন করে এবং বিশেষ পাসওয়ার্ড এনক্রিপশন প্রদান করে। আপনার পাসওয়ার্ডের নিরাপত্তা বাড়াতে, আপনার স্ট্রিং এনক্রিপ্ট করার সময় এটি স্বয়ংক্রিয়ভাবে অতিরিক্ত র্যান্ডম অক্ষর (লবণ) তৈরি করে।
আপনি একটি ইনকামিং স্ট্রিংয়ে কতগুলি অতিরিক্ত অক্ষর যোগ করতে চান তা নির্ধারণ করতেও বেছে নিতে পারেন।
bcrypt লাইব্রেরি শুধুমাত্র বাইট কোড পড়ে, কাঁচা স্ট্রিং নয়। তাই, এনক্রিপশনের জন্য bcrypt-এ একটি ইনকামিং পাসওয়ার্ড স্ট্রিং জমা দেওয়ার আগে, আপনাকে প্রথমে এটি এনকোড করতে হবে।
এনক্রিপ্ট করা এবং এনকোডিং একই জিনিস নয়। এটি শুধুমাত্র নিশ্চিত করে যে একটি স্ট্রিং একটি এনক্রিপশন কৌশল দ্বারা আচ্ছাদিত হওয়ার আগে মেশিন-পঠনযোগ্য।
পাইথনে একটি পাসওয়ার্ড এনক্রিপ্ট করতে bcrypt ব্যবহার করা
পাইথন বিক্রিপ্ট পাসওয়ার্ড এনক্রিপশন সহজ করে তোলে। আমরা একটি কাঠামোর সাহায্য ছাড়াই এটি করার উপর মনোনিবেশ করব। কিন্তু চিন্তা করবেন না, যদি আপনি বুঝতে পারেন কিভাবে ব্যবহারকারীর ইনপুট সংরক্ষণ করতে হয় এবং ডাটাবেস থেকে সেগুলি পড়তে হয়, তবে পদ্ধতিটি ফ্রেমওয়ার্কগুলিতে একই।
স্থাপন
আপনাকে শুধুমাত্র একটি Python ভার্চুয়াল পরিবেশ সেট আপ করতে হবে এবং তারপর PyCharm এর মত একটি IDE ব্যবহার করতে হবে। লাইব্রেরিটি প্রথমে ইনস্টল করতে হবে:
পাসওয়ার্ড এনক্রিপ্ট করা হচ্ছে
চলুন দেখি কিভাবে bcrypt ব্যবহার করে একটি টেক্সট ইন্সটল হওয়ার পর এনক্রিপ্ট করতে হয়:
উপরে উল্লিখিত পাইথন কোড একটি এনক্রিপ্ট করা বাইট স্ট্রিং কার্যকর করে এবং আউটপুট করে। কিন্তু প্রতিবার আপনি স্ক্রিপ্ট চালান, ফলাফল ভিন্ন হয়। Bcrypt এই পদ্ধতি ব্যবহার করে নিশ্চিত করে যে প্রত্যেক ব্যবহারকারীর একটি পাসওয়ার্ড আছে যা বিশেষভাবে এনক্রিপ্ট করা আছে।
যে, ঘটনাক্রমে, পাসওয়ার্ড এনক্রিপশন জন্য.
Bcrypt ব্যবহার করে পাসওয়ার্ড তুলনা এবং নিশ্চিতকরণ
আপনি যদি হ্যাশ করা পাসওয়ার্ড সংরক্ষণ করতে চান এবং যাচাই করার জন্য ব্যবহারকারীর জমা দেওয়া পাসওয়ার্ডের সাথে মেলে কিনা তা দেখতে পরে কি হবে?
এটা সহজ. শুধুমাত্র প্রমাণীকরণকারী পাসওয়ার্ডকে ডাটাবেসের এন্ট্রির সাথে তুলনা করতে হবে (বা এই ক্ষেত্রে মেমরিতে)।
ডাটাবেসের সাথে তুলনা করার আগে প্রমাণীকরণকারী পাসওয়ার্ডটি অবশ্যই এনকোড করা উচিত কারণ bcrypt শুধুমাত্র বাইট স্ট্রিং পড়তে পারে। মূলত, আপনি বর্তমানে আপনার ডাটাবেসে থাকা এনকোড করা হ্যাশড পাসওয়ার্ডের সাথে একটি এনকোড করা প্রমাণীকরণ ইনপুট তুলনা করবেন।
আসুন কাল্পনিক পাইথন ইনপুট ব্যবহার করে এটি পরীক্ষা করি:
উপরে উল্লিখিত কোড চালানোর পরে, আপনাকে একটি নতুন পাসওয়ার্ডের জন্য অনুরোধ করা হবে। এটি পাইথন দ্বারা মেমরিতে সংরক্ষণ করা হয়। প্রমাণীকরণ বিভাগে, আপনি তারপরে একই পাসওয়ার্ড লিখবেন, যা আপনার ব্যক্তিগত।
যদি পাসওয়ার্ড তুলনা করা হয় এবং যেটি আগে এনক্রিপ্ট করা হয়েছিল এবং ম্যাচটি সংরক্ষণ করা হয়েছিল, পাইথন একটি সাফল্যের বার্তা প্রকাশ করে।
যদি না হয়, ত্রুটি বার্তাটি প্রিন্ট করা হয় এবং তারপর অন্য বাক্য যোগ করা হয়।
মৌলিক ধারণাটি নিবন্ধন এবং তারপর প্রমাণীকরণের জন্য একটি ডাটাবেসে একটি পাসওয়ার্ড সরবরাহ করার মত।
উপসংহার
প্লেইন পাইথন শর্ট মেমরিতে কীভাবে বিক্রিপ্ট ফাংশন কাজ করে তা দেখানোর জন্য আমরা সহজভাবে এনক্রিপ্ট করা পাসওয়ার্ড ব্যবহার করলেও, এর প্রকৃত প্রযোজ্যতা ব্যবহারকারী-বেস অ্যাপে রয়েছে।
তবুও, এই নিবন্ধটি বাস্তব-বিশ্বের পরিস্থিতিতেও, এটি সম্পাদন করার জন্য আপনার কোড সংগঠিত করার প্রয়োজনীয় পদ্ধতিগুলি প্রদর্শন করে৷
উদাহরণস্বরূপ, আপনি যদি ফ্লাস্ক ব্যবহার করেন তবে আপনি ইনপুটগুলির পরিবর্তে পৃথক ওয়েব ফর্মের মাধ্যমে নিবন্ধন এবং প্রমাণীকরণ ক্ষেত্রগুলি সরবরাহ করতে পারেন।
অবশ্যই, পাসওয়ার্ড তুলনা করার সময়, আপনি একটি ডাটাবেস থেকে পড়বেন যাতে এনক্রিপ্ট করা পাসওয়ার্ড রয়েছে যা বাস্তব জগতে রাখা হয়।
জোনা নিটশ
এই সহজ এবং সহজ ব্যাখ্যা জন্য আপনাকে ধন্যবাদ,
এটি আমার বর্তমান প্রকল্পে আমাকে অনেক সাহায্য করেছে।
আমি মনে করি এটি খুব ভাল যে উদাহরণ কোডটি ন্যূনতম সীমাবদ্ধ এবং অন্যান্য অনেক ব্যাখ্যার মতো ওভারলোড নয়।
শুভেচ্ছান্তে