টুল
গাইড

AES এনক্রিপ্ট / ডিক্রিপ্ট

ক্রিপ্টো

PBKDF2-প্রাপ্ত কী, এলোমেলো লবণ ও IV সহ AES-GCM সিমেট্রিক এনক্রিপশন। পাসওয়ার্ড-ভিত্তিক।

100% ক্লায়েন্ট-সাইড কোনো ব্যাকএন্ড নেই
ইনপুট
আউটপুট
এই পৃষ্ঠায়

সিমেট্রিক এনক্রিপশন কী?#

সিমেট্রিক এনক্রিপশন লক করতে এবং আনলক করতে উভয়ের জন্য একটি শেয়ার করা গোপন ব্যবহার করে। আপনি এটিকে প্লেইনটেক্সট এবং একটি পাসওয়ার্ড দেন; এটি একটি স্ক্র্যাম্বল করা দলা ফেরত দেয় যা সেই একই পাসওয়ার্ড ছাড়া কেউ পড়তে পারবে না। এটি সঠিক টুল যখনই আপনি গোপনীয়তা চান — কিছু কী বলে তা লুকানো — একটি হ্যাশের বিপরীতে (যা শুধুমাত্র অখণ্ডতা প্রমাণ করে) বা HMAC (যা সততা প্রমাণ করে)।

এই পৃষ্ঠাটি AES-GCM ব্যবহার করে, নতুন কোডের জন্য সুপারিশকৃত প্রমাণীকৃত-এনক্রিপশন মোড। “প্রমাণীকৃত” হলো মূল শব্দ: GCM শুধুমাত্র আপনার টেক্সট স্ক্র্যাম্বল করে না, এটি একটি টাম্পার-প্রুফ ট্যাগও বুনে দেয়। যদি কেউ সাইফারটেক্সটে একটি বিট উল্টে দেয়, ডিক্রিপশন নীরবে আবর্জনা ফেরানোর বদলে জোরে ব্যর্থ হয়। কীটি আপনার পাসওয়ার্ড থেকে SHA-256-এর উপর PBKDF2 দিয়ে উদ্ভূত হয়, একটি নতুন এলোমেলো সল্ট এবং ডিফল্টভাবে 100,000 পুনরাবৃত্তি ব্যবহার করে, তাই একটি কিছুটা দুর্বল পাসওয়ার্ড এখনও অফলাইনে ব্রুট-ফোর্স করা ব্যয়বহুল।

সবকিছু Web Crypto-র মাধ্যমে ব্রাউজারে চলে। কোনো সার্ভার, কোনো কী এসক্রো, এবং কোনো নেটওয়ার্ক কল নেই — আপনি পাসওয়ার্ড হারালে, সাইফারটেক্সট ডিজাইন অনুসারে অপুনরুদ্ধারযোগ্য।

ব্যবহারবিধি#

  1. একটি মোড বেছে নিন: এনক্রিপ্ট (প্লেইনটেক্সট ইন → সাইফারটেক্সট আউট) বা ডিক্রিপ্ট (সাইফারটেক্সট ইন → প্লেইনটেক্সট আউট)।
  2. পাসওয়ার্ড টাইপ করুন। এটি হলো একক শেয়ার করা গোপন; যে পরে ডিক্রিপ্ট করে সে অবশ্যই ঠিক একই টাইপ করবে।
  3. বিকল্পগুলো বেছে নিন:
    • কী-র আকার — 128 / 192 / 256 (ডিফল্ট 256)। 256 হলো আধুনিক ভিত্তি; অন্যগুলো লিগেসি সিস্টেমের সাথে মেলানোর জন্য বিদ্যমান।
    • পুনরাবৃত্তি — PBKDF2 রাউন্ড, ডিফল্ট 100,000। উচ্চতর অফলাইন ক্র্যাকিং ধীর করে কিন্তু আপনাকেও ধীর করে; 100,000 আজ একটি বুদ্ধিমানের মেঝে।
    • আউটপুট ফরম্যাট — base64 (কম্প্যাক্ট, ডিফল্ট) বা হেক্স।
  4. বাঁদিকের পেইনে ইনপুট পেস্ট করুন। এনক্রিপ্টের জন্য, যেকোনো টেক্সট; ডিক্রিপ্টের জন্য, আপনি আগে কপি করা দলাটি।
  5. ডানদিকে আউটপুট পড়ুন। স্ট্যাটাস লাইন আপনাকে জানায় অপারেশনটি সফল হয়েছে কি না; ডিক্রিপ্টে ভুল পাসওয়ার্ড বিকৃত টেক্সটের বদলে একটি পরিষ্কার ব্যর্থতা দেখায়।

মূল বৈশিষ্ট্য#

  • AES-GCM প্রমাণীকৃত এনক্রিপশন। সাইফারটেক্সটের সাথে কালেভদ্র করা হলে তা সনাক্ত করা হয় — একটি পরিবর্তিত দলা ডিক্রিপ্ট হতে অস্বীকার করে, বিশ্বাসযোগ্য আবর্জনা তৈরি করার বদলে।
  • স্ব-বর্ণনামূলক আউটপুট। সল্ট, IV, কী-এর আকার, এবং পুনরাবৃত্তি গণনা আউটপুট দলায় প্যাক করা হয়, তাই ডিক্রিপশনের জন্য পাসওয়ার্ড ছাড়া আর কিছুই প্রয়োজন নেই। আপনাকে কখনো সেই প্যারামিটারগুলো আলাদাভাবে মনে রাখতে বা পুনরায় পাঠাতে হবে না।
  • প্রতি-বার্তা এলোমেলোতা। প্রতিটি এনক্রিপশনের জন্য একটি নতুন এলোমেলো সল্ট এবং একটি নতুন 12-বাইট IV টানা হয়, তাই একই টেক্সট দুবার এনক্রিপ্ট করলে দুটি সম্পূর্ণ ভিন্ন দলা তৈরি হয় — উভয়ই একই প্লেইনটেক্সটে ডিক্রিপ্ট হয়।
  • সমন্বয়যোগ্য PBKDF2। অফলাইন আক্রমণের বিরুদ্ধে একটি দুর্বল পাসওয়ার্ড শক্ত করতে পুনরাবৃত্তি গণনা বাড়ান।
  • শূন্য আপলোড। এনক্রিপশন এবং ডিক্রিপশন উভয়ই স্থানীয়; পাসওয়ার্ড এবং প্লেইনটেক্সট কখনো পৃষ্ঠা ছাড়ে না।

ব্যবহারিক উদাহরণ#

বার্তা launch at dawn পাসওয়ার্ড correct-horse-battery-staple, কী-র আকার 256, পুনরাবৃত্তি 100000, এনকোডিং base64 দিয়ে এনক্রিপ্ট করুন। নিচের আউটপুটটি একটি বাস্তব, যাচাইযোগ্য দলা — একই পাসওয়ার্ড সহ ডিক্রিপ্টে সরাসরি পেস্ট করুন এবং launch at dawn ফিরে আসে:

AQEAAAGGoPVkwA9k0rjoWLw8GXnalIvQoBTP+awUg4DczQwTK5nxMwUaEaQ35WTQbWK8gLMkvuDf+/ndr04f8fw=

(একই টেক্সট আবার এনক্রিপ্ট করলে একটি ভিন্ন দলা তৈরি হবে, কারণ সল্ট এবং IV প্রতিটি রানে নতুন করে এলোমেলো।) সেই দলাটি শুধু সাইফারটেক্সট নয়। এটি একটি ছোট খাম যা এভাবে সাজানো:

version(1) | keyBits(2) | iterations(4) | salt(16) | IV(12) | ciphertext+tag

ডিক্রিপ্ট-এ স্যুইচ করুন, উপরের দলাটি ইনপুটে ফিরিয়ে পেস্ট করুন, একই পাসওয়ার্ড টাইপ করুন, এবং ডান পেইন launch at dawn ফেরত দেয়। এখন সামান্য ভিন্ন পাসওয়ার্ড দিয়ে ডিক্রিপ্ট পুনরায় চেষ্টা করুন — GCM-এর প্রমাণীকরণ ট্যাগ বৈধ হবে না, এবং স্ট্যাটাস লাইন আপনাকে অর্ধেক-বিকৃত টেক্সট দেওয়ার বদলে একটি ব্যর্থতা রিপোর্ট করে। সেই পরিষ্কার ব্যর্থতাই ঠিক প্রমাণীকৃত এনক্রিপশন পুরোনো, অ-প্রমাণীকৃত CBC মোডের উপর কী কেনেন।

প্রশ্নোত্তর#

আমি যদি পাসওয়ার্ড ভুলে যাই তাহলে কী হবে?#

ডেটা চলে গেছে। PBKDF2 এবং AES এমনভাবে ডিজাইন করা হয়েছে যাতে দলা থেকে পাসওয়ার্ড পুনরুদ্ধার করা যায় না — কোনো “পাসওয়ার্ড ভুলে গেছেন” পথ নেই, কোনো ব্যাকডোর নেই, এবং এমন কোনো সার্ভার নেই যা তা রিসেট করতে পারে। পাসওয়ার্ডটিকে ব্যর্থতার একক বিন্দু হিসেবে বিবেচনা করুন, এবং সংকটময় পাসওয়ার্ডগুলো একটি পাসওয়ার্ড ম্যানেজারে সংরক্ষণ করার কথা ভাবুন।

একই টেক্সট দুবার এনক্রিপ্ট করলে কেন ভিন্ন আউটপুট দেয়?#

কারণ প্রতিটি এনক্রিপশনের জন্য একটি নতুন এলোমেলো সল্ট এবং একটি নতুন এলোমেলো 12-বাইট IV তৈরি করা হয়। এটি ইচ্ছাকৃত: যদি অভিন্ন প্লেইনটেক্সট সর্বদা অভিন্ন সাইফারটেক্সট তৈরি করত, একজন আক্রমণকারী পুনরাবৃত্ত বার্তা চিনতে পারত। এলোমেলোতা ডিক্রিপশনকে প্রভাবিত করে না, কারণ সল্ট এবং IV দলার ভেতরে চলাচল করে এবং স্বয়ংক্রিয়ভাবে পড়া হয়।

আমার কতগুলো পুনরাবৃত্তি সেট করা উচিত?#

ইন্টারঅ্যাকটিভ ব্যবহারের জন্য 100,000 একটি যাযাবর মেঝে। আপনি যদি উচ্চ-মূল্যের কিছু রক্ষা করেন এবং একটি সংক্ষিপ্ত অপেক্ষা সহ্য করতে পারেন, 600,000 একজন আক্রমণকারীর জন্য একটি অর্থপূর্ণ অতিরিক্ত খরচ আনে আপনার জন্য যন্ত্রণাদায়ক না হয়ে। খরচটি ডেটার প্রতি বাইটে নয়, প্রতিটি এনক্রিপ্ট বা ডিক্রিপ্টে একবার দেওয়া হয়।

এটি কি বড় ফাইলের জন্য নিরাপদ?#

এটি আপনি যা পেস্ট করতে পারেন যেকোনো টেক্সট সামলায়, কিন্তু এটি একটি পৃষ্ঠা-আকারের টুল, একটি স্ট্রিমিং ফাইল এনক্রিপ্টর নয়। খুব বড় পেলোডের জন্য, একটি হাইব্রিড স্কিম (ডেটার জন্য AES, AES কী-এর জন্য RSA বা কী র‍্যাপিং) হলো মানক প্যাটার্ন — এবং AES-GCM হলো ঠিক সেই প্যাটার্নের সিমেট্রিক অর্ধেক।