সুচিপত্র:

পাইথনে সিজার সাইফার প্রোগ্রাম: 4 টি ধাপ
পাইথনে সিজার সাইফার প্রোগ্রাম: 4 টি ধাপ

ভিডিও: পাইথনে সিজার সাইফার প্রোগ্রাম: 4 টি ধাপ

ভিডিও: পাইথনে সিজার সাইফার প্রোগ্রাম: 4 টি ধাপ
ভিডিও: CS50 2016 Week 0 at Yale (pre-release) 2024, নভেম্বর
Anonim
পাইথনে সিজার সাইফার প্রোগ্রাম
পাইথনে সিজার সাইফার প্রোগ্রাম

সিজার সাইফার একটি প্রাচীন এবং বহুল ব্যবহৃত সাইফার যা এনক্রিপ্ট এবং ডিক্রিপ্ট করা সহজ। এটি একটি সম্পূর্ণ নতুন বর্ণমালা তৈরি করতে বর্ণমালার অক্ষর বদল করে কাজ করে (ABCDEF 4 টি অক্ষরের উপরে স্থানান্তরিত হতে পারে এবং EFGHIJ হয়ে যাবে)।

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

এই প্রক্রিয়াটিকে সহজ করার জন্য, আমরা কম্পিউটারের শক্তি ব্যবহার করতে পারি, বিশেষ করে প্রোগ্রামিং ভাষা পাইথন।

এই নির্দেশযোগ্য আপনাকে দেখাবে কিভাবে একটি প্রোগ্রাম তৈরি করতে হয় যা আপনার কমান্ডে বার্তাগুলিকে একটি সাইফারে রূপান্তর করে।

সরবরাহ

আপনার যা দরকার তা হল একটি পাইথন দোভাষী: IDLE, Pycharm এবং Thonny কিছু ভাল, বিনামূল্যে বিকল্প (আমি পাইচার্ম ব্যবহার করেছি)

পাইথনের প্রাথমিক জ্ঞান

ধাপ 1: ভেরিয়েবল ঘোষণা করা এবং ইনপুট পাওয়া

ভেরিয়েবল ঘোষণা করা এবং ইনপুট পাওয়া
ভেরিয়েবল ঘোষণা করা এবং ইনপুট পাওয়া

প্রকৃতপক্ষে বর্ণমালা, বার্তা, স্থানান্তর ইত্যাদির স্ট্রিং (পাঠ্য) মান সংরক্ষণ করতে আমাদের ভেরিয়েবল ব্যবহার করতে হবে। আমরা 'বর্ণমালা', 'partialOne', 'partialTwo', এবং 'newAlphabet' ঘোষণা করে শুরু করি। আমি আমার কোডে ক্যামেল কেসে ভেরিয়েবলের নাম লিখেছি (প্রথম শব্দটি ছোট হাতের এবং দ্বিতীয় বড় হাতের অক্ষর) কিন্তু আপনি যেভাবে চান তা লিখতে পারেন, যতক্ষণ আপনি মনে রাখবেন বাকি কোডেও এটি পরিবর্তন করতে হবে । বর্ণমালার পরিবর্তনশীলটির মান "abcdefghijklmnopqrstuvwxyz"। অন্য সব ভেরিয়েবল "" তে সেট করা আছে, যা একটি খালি স্ট্রিং কারণ আমাদের কাছে এখনো তাদের মান নেই।

এটি যা করছে তা হচ্ছে আংশিক সিস্টেম স্থাপন করা, যা আমরা আসলে শিফট তৈরি করতে ব্যবহার করছি। এটি পরবর্তী ধাপে ব্যাখ্যা করা হবে।

এর পরে, আমাদের ব্যবহারকারীর কাছ থেকে বার্তা এবং স্থানান্তর মান পেতে হবে। আমরা এটি করতে ইনপুট ফাংশন ব্যবহার করি। কোডের এই অংশটি ব্যবহারকারীকে একটি বার্তা এবং একটি নম্বর দিয়ে বর্ণমালা পরিবর্তন করতে বলে।

কোড:

বর্ণমালা = "abcdefghijklmnopqrstuvwxyz"

আংশিক এক = ""

আংশিক দুই = ""

নতুন বর্ণমালা = ""

বার্তা = ইনপুট ("দয়া করে আপনি যে বার্তাটি অনুবাদ করতে চান তা লিখুন:")। কম ()

কী = int (ইনপুট ("দয়া করে আপনি যে নম্বরটি পরিবর্তন করতে চান তা লিখুন:"))

ধাপ 2: নতুন বর্ণমালা তৈরি করা

নতুন বর্ণমালা তৈরি করা
নতুন বর্ণমালা তৈরি করা

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

উদাহরণ স্বরূপ:

ক্রম - 123456789

আংশিক এক - 123; আংশিক দুই - 456789

নতুন ক্রম - 456789123

কোড:

যদি কী == 0:

নতুন বর্ণমালা = বর্ণমালা

এলিফ কী> 0:

partialOne = বর্ণমালা [: কী]

partialTwo = বর্ণমালা [কী:]

newAlphabet = partialTwo + partialOne

অন্য:

partialOne = বর্ণমালা [:(26 + কী]

partialTwo = বর্ণমালা [(26 + কী):]

newAlphabet = partialTwo + partialOne

ধাপ 3: বার্তা স্থানান্তর

বার্তা স্থানান্তর
বার্তা স্থানান্তর

এখন আমাদের বর্ণমালা এবং নতুন বর্ণমালা আছে। যা বাকি আছে তা হল বার্তাটি কোডে পরিবর্তন করা।

প্রথমে, আমরা একটি নতুন পরিবর্তনশীল সেট করি এবং এটিকে 'এনক্রিপ্টেড' বলি এবং "" এ সেট করি। তারপরে আমরা একটি খুব জটিল ফর-লুপ লিখি যা বার্তার প্রতিটি অক্ষর পরীক্ষা করে এবং নতুন অক্ষরে স্যুইচ করে। এটি ফলাফল আউটপুট এবং সেখানে আপনি এটি আছে, একটি সফলভাবে রূপান্তরিত কোড!

কোড:

encrypted = "" message_index এর পরিসরে (0, len (message)):

যদি বার্তা [message_index] == "":

এনক্রিপ্ট করা+= ""

বর্ণমালার সূচিপত্রের জন্য (0, len (newAlphabet)):

যদি বার্তা [message_index] == বর্ণমালা [alphabet_index]:

এনক্রিপ্ট করা+= নতুন বর্ণমালা [alphabet_index]

মুদ্রণ (এনক্রিপ্ট করা)

ধাপ 4: অতিরিক্ত

অতিরিক্ত
অতিরিক্ত
অতিরিক্ত
অতিরিক্ত

সংযুক্ত কোড ফাইল।

প্রস্তাবিত: