টুল
গাইড

RSA এনক্রিপ্ট / সাইন

ক্রিপ্টো

Web Crypto দিয়ে RSA-OAEP এনক্রিপশন এবং RSASSA-PKCS1-v1_5 স্বাক্ষর। কী-জোড় তৈরি করুন বা PEM কী পেস্ট করুন।

100% ক্লায়েন্ট-সাইড কোনো ব্যাকএন্ড নেই
বার্তা
স্বাক্ষর
কী (PEM)
আউটপুট
পাবলিক কী (PEM)
প্রাইভেট কী (PEM)
এই পৃষ্ঠায়

RSA কী?#

RSA হলো অসিমেট্রিক ক্রিপ্টোগ্রাফি: এটি একটি শেয়ার করা গোপনের বদলে মিলিত কী-জোড়ের সাথে কাজ করে। একটি পাবলিক কী যে কারও হাতে তুলে দেওয়া যায় — এর একমাত্র কাজ হলো ডেটা লক করা এবং স্বাক্ষর যাচাই করা। একটি প্রাইভেট কী আপনার কাছে থাকে এবং একমাত্র জিনিস যা পাবলিক কীতে এনক্রিপ্ট করা ডেটা আনলক করতে পারে, বা এমন একটি স্বাক্ষর তৈরি করতে পারে যা যে কেউ যাচাই করতে পারে। সেই বিভাজনই দুটি পক্ষকে যারা কখনো গোপন শেয়ার করেনি তাদের এখনও গোপনীয় বার্তা বিনিময় করতে এবং সততা প্রমাণ করতে দেয়।

এই পৃষ্ঠাটি RSA-র চারটি অপারেশন কভার করে যার জন্য এটি সাধারণত ব্যবহৃত হয়, সবই ব্রাউজারের নেটিভ Web Crypto ইঞ্জিনের মাধ্যমে:

  • এনক্রিপ্ট / ডিক্রিপ্ট SHA-256 সহ RSA-OAEP ব্যবহার করে — আধুনিক, প্রমাণীকৃত-প্যাডিং স্কিম। পাবলিক কী দিয়ে এনক্রিপ্ট করা একটি ছোট বার্তা শুধুমাত্র প্রাইভেট কী দিয়েই পড়া যেতে পারে।
  • সাইন / যাচাই SHA-256 সহ RSASSA-PKCS1-v1_5 ব্যবহার করে — সবচেয়ে ব্যাপকভাবে ইন্টারঅপারেবল স্বাক্ষর স্কিম, যা বেশিরভাগ JWT এবং X.509 চেইন এখনও ব্যবহার করে।
  • কী তৈরি 2048-, 3072-, বা 4096-বিট জোড় তৈরি করে 65537 পাবলিক এক্সপোনেন্ট সহ, মানক PEM হিসেবে রপ্তানি করা হয় (পাবলিক কী-এর জন্য SubjectPublicKeyInfo, প্রাইভেট কী-এর জন্য PKCS#8)।

RSA ইচ্ছাকৃতভাবে ছোট পেলোডে সীমাবদ্ধ। RSA-2048 এবং SHA-256 সহ, আপনি এনক্রিপ্ট করতে পারবেন এমন সবচেয়ে বড় বার্তা প্রায় 190 বাইট; এর চেয়ে বড় কিছুর জন্য, সিমেট্রিক টুল ব্যবহার করুন এবং তার কী RSA দিয়ে রক্ষা করুন।

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

  1. একটি জোড় তৈরি করুন। একটি কী-র আকার (2048 / 3072 / 4096) বেছে নিন এবং তৈরি করুন ক্লিক করুন। দুটি শুধু-পঠনযোগ্য বাক্স পূরণ হয়: পাবলিক কী এবং প্রাইভেট কী, উভয়ই PEM-এ। প্রতিটিকে কোথাও নিরাপদে কপি করুন — প্রাইভেট কী হলো এমন কিছু যা আপনাকে কখনো শেয়ার করতে নেই।
  2. একটি মোড বেছে নিন: এনক্রিপ্ট, ডিক্রিপ্ট, সাইন, বা যাচাই।
  3. মোডের জন্য সঠিক কী Key ফিল্ডে রাখুন:
    • এনক্রিপ্ট → পাবলিক কী পেস্ট করুন।
    • ডিক্রিপ্ট → প্রাইভেট কী পেস্ট করুন।
    • সাইন → প্রাইভেট কী পেস্ট করুন।
    • যাচাই → পাবলিক কী পেস্ট করুন।
  4. বার্তা টাইপ করুন। যাচাইয়ের জন্য, স্বাক্ষর ফিল্ডে স্বাক্ষর (base64) পেস্ট করুন।
  5. এটি চালান। স্ট্যাটাস লাইন ফলাফল রিপোর্ট করে — যাচাইয়ের জন্য এটি স্পষ্টভাবে বলে স্বাক্ষরটি বৈধ কি অবৈধ।

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

  • দুটি অ্যালগরিদম, এক কী-জোড়। একই PEM OAEP এনক্রিপশন এবং PKCS#1 স্বাক্ষরের জন্য কাজ করে, কারণ Web Crypto ইমপোর্টের সময় অ্যালগরিদম নেয়।
  • মানক PEM আউটপুট। পাবলিক কী হলো SPKI, প্রাইভেট কী হলো PKCS#8 — এমন ফরম্যাট যা প্রতিটি ভাষা এবং প্ল্যাটফর্ম নেটিভভাবে পড়ে।
  • 65537 পাবলিক এক্সপোনেন্ট। সর্বজনীনভাবে নির্বাচিত মান; দ্রুত হওয়ার মতো যথেষ্ট ছোট, পরিচিত দুর্বলতা এড়াতে যথেষ্ট বড়।
  • ইন্টারঅপারেবল স্বাক্ষর। RSASSA-PKCS1-v1_5 হলো এমন ফরম্যাট যা বাস্তব-বিশ্বের JWT, কোড-সাইনিং, এবং সার্টিফিকেট চেইন প্রত্যাশা করে।
  • শূন্য আপলোড। কী তৈরি, এনক্রিপশন, এবং স্বাক্ষর সবই আপনার ব্রাউজারে স্থানীয়ভাবে চলে; প্রাইভেট কী কখনো সার্ভার স্পর্শ করে না।

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

2048 নির্বাচিত অবস্থায় তৈরি করুন ক্লিক করুন। পাবলিক-কী বাক্স এই আকৃতির একটি PEM ব্লক দিয়ে পূরণ হয়:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyY7v...(lines of base64)
-----END PUBLIC KEY-----

প্রাইভেট-কী বাক্স একটি দীর্ঘতর -----BEGIN PRIVATE KEY----- ব্লক দিয়ে পূরণ হয়। এখন এনক্রিপ্ট-এ স্যুইচ করুন, পাবলিক কী Key ফিল্ডে পেস্ট করুন, handshake: 0x4F2A কে বার্তা হিসেবে টাইপ করুন, এবং চালান। আউটপুট হলো প্রায় 344 অক্ষর দীর্ঘ একটি একক base64 দলা — ঠিক 256 বাইট RSA-2048 সাইফারটেক্সট, base64-এনকোডেড।

ডিক্রিপ্ট-এ স্যুইচ করুন, প্রাইভেট কী Key ফিল্ডে পেস্ট করুন, সেই দলাটি বার্তা ফিল্ডে ফেলুন, এবং চালান: মূল handshake: 0x4F2A ফিরে আসে। স্বাক্ষরের জন্য, সাইন-এর সাথে একই প্রবাহ একটি 344-অক্ষরের base64 স্বাক্ষর তৈরি করে যা যাচাই পাবলিক কী-এর বিরুদ্ধে বৈধ হিসেবে নিশ্চিত করবে — এবং আপনি যদি বার্তার একটি অক্ষর পরিবর্তন করেন তবে অবৈধ হিসেবে রিপোর্ট করবে।

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

RSA কেন শুধুমাত্র ছোট বার্তা এনক্রিপ্ট করতে পারে?#

RSA কী-র আকারের মডুলো সংখ্যার উপর কাজ করে। RSA-2048 দিয়ে আপনার একটি 256-বাইট ব্লক আছে, এবং OAEP প্যাডিং এর 2 * hashLen + 2 বাইট খরচ করে (SHA-256-এর জন্য 98), বার্তার জন্য 190 বাইট রেখে। এটি ডিজাইন অনুসারে — RSA কী এবং স্বাক্ষরের জন্য, বাল্ক ডেটার জন্য নয়। মানক প্যাটার্ন হলো “হাইব্রিড”: বাল্ক ডেটা AES দিয়ে এনক্রিপ্ট করুন (সিমেট্রিক টুল ব্যবহার করুন), তারপর শুধুমাত্র AES কী RSA দিয়ে এনক্রিপ্ট করুন।

2048, 3072, নাকি 4096 বিট?#

2048 হলো বর্তমান ভিত্তি এবং এখনও বেশিরভাগ ব্যবহারের জন্য পর্যাপ্ত বিবেচিত। 3072 প্রায় 128-বিট সিমেট্রিক শক্তির সাথে মেলে; 4096 হলো এমন কী-এর জন্য রক্ষণশীল পছন্দ যা আপনি এক দশক বা তার বেশি সময় ধরে রাখতে চান। প্রতিটি ধাপ কী তৈরিতে এবং প্রতিটি অপারেশনে প্রকৃত সময় খরচ করে, হ্রাসমান নিরাপত্তা প্রতিদান সহ।

এনক্রিপ্ট করা এবং স্বাক্ষর করার মধ্যে পার্থক্য কী?#

এনক্রিপশন গোপনীয়তা সম্পর্কে: পাবলিক কী লক করে, প্রাইভেট কী আনলক করে। স্বাক্ষর সততা সম্পর্কে: প্রাইভেট কী স্বাক্ষর তৈরি করে, পাবলিক কী তা যাচাই করে। তারা একই কী-জোড় ব্যবহার করে কিন্তু ভিন্ন অ্যালগরিদম (OAEP বনাম PKCS#1) এবং ভিন্ন প্রশ্নের উত্তর দেয় — “কেউ এটি পড়তে পারবে কি?” বনাম “এই কী-এর ধারক সত্যিই এটি তৈরি করেছে কি?”।

আমি যখন প্রাইভেট কী তৈরি করি বা ব্যবহার করি তখন কি তা কোথাও পাঠানো হয়?#

না। তৈরি, এনক্রিপশন, ডিক্রিপশন, স্বাক্ষর, এবং যাচাই সবই Web Crypto দ্বারা পৃষ্ঠায় সম্পাদিত হয়। PEM ব্লকগুলো শুধুমাত্র আপনার ব্রাউজার ট্যাবে বিদ্যমান; কিছুই প্রেরণ করা হয় না। আপনি যদি একটি প্রোডাকশন প্রাইভেট কী পরিচালনা করেন, তবে তা একটি ওয়েব পৃষ্ঠায় পেস্ট করার বদলে আপনার নিয়ন্ত্রণাধীন একটি পরিবেশে তৈরি করুন।