PBKDF2 ও HKDF কী ডেরিভেশন
PBKDF2 বা HKDF দিয়ে কোনো পাসওয়ার্ড বা সিক্রেট থেকে একটি কী ডেরাইভ করুন, সল্ট, পুনরাবৃত্তির সংখ্যা বা info লেবেল, হ্যাশ ও আউটপুট দৈর্ঘ্য বেছে নিন, এবং তা hex বা base64-এ পড়ুন, পুরোটাই আপনার ব্রাউজারে।
PBKDF2 ও HKDF কী ডেরিভেশন — PBKDF2 দিয়ে কোনো পাসওয়ার্ডকে টেনে একটি কী বানান, অথবা HKDF দিয়ে উচ্চ-এনট্রপির সিক্রেটকে নামযুক্ত সাব-কীতে বিস্তৃত করুন, কিছুই আপনার ডিভাইস থেকে বের না হয়ে। হ্যাশ বেছে নিন, সল্ট ও পুনরাবৃত্তির সংখ্যা (PBKDF2) বা info লেবেল (HKDF) সেট করুন, কত বিট আউটপুট দরকার তা ঠিক করুন, এবং ডেরাইভ করা কী hex বা base64-এ কপি করুন। প্রতিটি বাইট নেটিভ Web Crypto API (crypto.subtle.deriveBits) দিয়ে স্থানীয়ভাবে গণনা করা হয়, তাই আপনার পাসওয়ার্ড ও সিক্রেট কখনও কোনো সার্ভার স্পর্শ করে না।
PBKDF2 ও HKDF কী ডেরিভেশন কী?
PBKDF2 ও HKDF কী ডেরিভেশন একটি ফ্রি ইন-ব্রাউজার টুল যা ডেভেলপারদের সবচেয়ে বেশি ব্যবহৃত দুটি কী ডেরিভেশন ফাংশন চালায়। PBKDF2 (পাসওয়ার্ড-ভিত্তিক কী ডেরিভেশন ফাংশন 2) একটি HMAC কে হাজার হাজার বার পুনরাবৃত্তি করে ইচ্ছাকৃতভাবে ব্রুট ফোর্সকে ধীর করে দেয়, এবং একটি মানুষের পাসওয়ার্ড ও সল্টকে নির্দিষ্ট-দৈর্ঘ্যের কী-তে রূপান্তরিত করে। HKDF (HMAC-ভিত্তিক কী ডেরিভেশন ফাংশন) এমন একটি সিক্রেট নেয় যার ইতিমধ্যে যথেষ্ট এনট্রপি আছে এবং info লেবেল ব্যবহার করে তাকে এক বা একাধিক প্রসঙ্গ-আবদ্ধ সাব-কীতে বিস্তৃত করে, যা একটি একক মাস্টার সিক্রেট থেকে আলাদা এনক্রিপশন ও অথেনটিকেশন কী ডেরাইভ করার জন্য আদর্শ। ব্যাকএন্ড ইঞ্জিনিয়ার, নিরাপত্তা পর্যালোচক, এবং লগইন বা এনক্রিপশন কোড লেখা যে কেউ এটি টেস্ট ভেক্টর যাচাই করতে, সার্ভারের ডেরিভেশন পুনরুৎপাদন করতে, বা একবারের কাজের জন্য কী তৈরি করতে ব্যবহার করেন। অ্যালগরিদম পাল্টাতে PBKDF2/HKDF টগল ব্যবহার করুন, SHA-256, SHA-384, SHA-512 বা SHA-1 বেছে নিন, আউটপুট দৈর্ঘ্য বিটে সেট করুন, এবং ফলাফল hex বা base64-এ পড়ুন।
PBKDF2 ও HKDF কী ডেরিভেশন কীভাবে ব্যবহার করবেন
- উপরের টগল দিয়ে PBKDF2 বা HKDF বেছে নিন, যা আপনার কোড বা টেস্ট ভেক্টরের ব্যবহৃত ফাংশনের সঙ্গে মেলে।
- সিক্রেট ফিল্ডে আপনার পাসওয়ার্ড (PBKDF2) বা উচ্চ-এনট্রপির সিক্রেট (HKDF) টাইপ করুন বা পেস্ট করুন, তারপর একটি সল্ট দিন।
- PBKDF2-এর জন্য পুনরাবৃত্তির সংখ্যা সেট করুন; HKDF-এর জন্য ঐচ্ছিক info লেবেল সেট করুন যা কী-কে একটি প্রসঙ্গে আবদ্ধ করে।
- হ্যাশ (SHA-256, SHA-384, SHA-512 বা SHA-1) এবং বিটে আউটপুট দৈর্ঘ্য বেছে নিন।
- hex / base64 টগলটি আপনার প্রয়োজনীয় এনকোডিংয়ে পাল্টান এবং কপি বোতাম দিয়ে ডেরাইভ করা কী কপি করুন।
উদাহরণ
PBKDF2 — পাসওয়ার্ড থেকে 256-বিট কী
ইনপুট
Secret: correct horse battery staple Salt: a1b2c3d4 Hash: SHA-256, Iterations: 100000, Bits: 256
আউটপুট
একটি 64-অক্ষরের hex স্ট্রিং (32 বাইট) যা একই পাসওয়ার্ড, সল্ট, হ্যাশ ও পুনরাবৃত্তির সংখ্যায় পুনরুৎপাদনযোগ্য
HKDF — মাস্টার সিক্রেট থেকে প্রসঙ্গ-আবদ্ধ সাব-কী
ইনপুট
Secret: 9f8e7d6c…(master key) Salt: session-2024 Info: aes-gcm-encryption Hash: SHA-256, Bits: 256
আউটপুট
একই সিক্রেটের সঙ্গে Info: hmac-authentication দিলে যে কী হয় তার থেকে ভিন্ন একটি 256-বিট কী, ফলে একটি মাস্টার থেকে স্বাধীন সাব-কী তৈরি হয়
base64-এ ছোট আউটপুট
ইনপুট
Bits: 128, encoding switched to base64
আউটপুট
একটি 24-অক্ষরের base64 স্ট্রিং যা প্রথম 16 ডেরাইভ করা বাইট এনকোড করে
সচরাচর জিজ্ঞাসিত প্রশ্ন
- আমার পাসওয়ার্ড বা সিক্রেট কি কোথাও পাঠানো হয়?
- না। সিক্রেট, সল্ট ও info আপনার ব্রাউজারেই থাকে। কী Web Crypto API (crypto.subtle.deriveBits) দিয়ে স্থানীয়ভাবে ডেরাইভ করা হয়, এবং কিছুই কোনো সার্ভারে আপলোড বা সংরক্ষণ করা হয় না, তাই টুলটি অফলাইনে কাজ করে এবং আপনার ইনপুট কখনও পৃষ্ঠা ছাড়ে না।
- আমার কখন PBKDF2 আর কখন HKDF ব্যবহার করা উচিত?
- কম-এনট্রপির মানুষের পাসওয়ার্ড থেকে কী ডেরাইভ করতে PBKDF2 ব্যবহার করুন — এর পুনরাবৃত্তির সংখ্যা ব্রুট ফোর্সকে ধীর করে। যখন আপনার কাছে ইতিমধ্যে একটি উচ্চ-এনট্রপির সিক্রেট (একটি মাস্টার কী বা শেয়ার করা সিক্রেট) আছে এবং আপনি তা info লেবেলের মাধ্যমে এক বা একাধিক আলাদা সাব-কীতে বিস্তৃত করতে চান, তখন HKDF ব্যবহার করুন। HKDF দ্রুত এবং PBKDF2-এর পাসওয়ার্ড স্ট্রেচিংয়ের বিকল্প নয়।
- আমার আউটপুট দৈর্ঘ্য কেন রাউন্ড করা হয়?
- Web Crypto-এর deriveBits পূর্ণ বাইটে কাজ করে, তাই বিটে আউটপুট দৈর্ঘ্য নিকটতম 8-এর গুণিতকে রাউন্ড করা হয়। ফলাফলের নিচের পরিসংখ্যান প্রকৃতপক্ষে উৎপন্ন বিট ও বাইট দেখায়।
- কোন হ্যাশ ও অ্যালগরিদম সমর্থিত?
- উভয় অ্যালগরিদম SHA-256, SHA-384, SHA-512 বা SHA-1-এ চলে, যা ব্রাউজারের Web Crypto PBKDF2 ও HKDF-এর জন্য উন্মুক্ত করে। scrypt, Argon2 ও bcrypt দেওয়া হয় না কারণ ব্রাউজার এগুলো নেটিভভাবে বাস্তবায়ন করে না।
- একই ইনপুট কি সবসময় একই কী দেবে?
- হ্যাঁ। কী ডেরিভেশন নির্ধারণমূলক: একই অ্যালগরিদম, সিক্রেট, সল্ট, হ্যাশ, আউটপুট দৈর্ঘ্য ও পুনরাবৃত্তির সংখ্যা (PBKDF2) বা info (HKDF) সবসময় একই বাইট উৎপন্ন করে, তাই আপনি এটি দিয়ে আপনার সার্ভারের ডেরাইভ করা কী পুনরুৎপাদন বা যাচাই করতে পারেন।
সম্পর্কিত টুল
AES টেক্সট এনক্রিপশন (AES-GCM + PBKDF2)
একটি পাসফ্রেজ থেকে উদ্ভূত কী (PBKDF2 SHA-256, এলোমেলো সল্ট) দিয়ে AES-256-GCM ব্যবহার করে টেক্সট এনক্রিপ্ট ও ডিক্রিপ্ট করুন, সম্পূর্ণরূপে আপনার ব্রাউজারে এবং কোনো আপলোড ছাড়াই।
Argon2 ও scrypt হ্যাশ
Argon2id বা scrypt দিয়ে একটি পাসওয়ার্ড হ্যাশ করুন এবং একটি Argon2 হ্যাশ পাসওয়ার্ডের সঙ্গে মিলছে কি না যাচাই করুন, সম্পূর্ণভাবে আপনার ব্রাউজারে।
Bcrypt হ্যাশ জেনারেটর ও ভেরিফায়ার
নির্বাচিত কস্ট ফ্যাক্টরে সাধারণ টেক্সট থেকে একটি bcrypt পাসওয়ার্ড হ্যাশ তৈরি করুন, কিংবা একটি বিদ্যমান bcrypt হ্যাশের বিপরীতে একটি পাসওয়ার্ড যাচাই করুন—সম্পূর্ণ আপনার ব্রাউজারে।
BIP39 নিমোনিক জেনারেটর
একাধিক ভাষায় 12 থেকে 24 শব্দের একটি এলোমেলো BIP39 রিকভারি বাক্যাংশ তৈরি করুন, অথবা একটি বিদ্যমান নিমোনিককে আবার তার কাঁচা এনট্রপিতে রূপান্তর করুন, সম্পূর্ণভাবে আপনার ব্রাউজারে।