কম্পিউটার

পাইথনে Vigenere সাইফার ব্যবহার করে একটি স্ট্রিং এনক্রিপ্ট করার প্রোগ্রাম


ধরুন আমাদের একটি ছোট হাতের বর্ণমালার স্ট্রিং টেক্সট আছে, এবং কী নামে আরেকটি স্ট্রিং আছে। আমাদের একটি নতুন স্ট্রিং খুঁজে বের করতে হবে যেখানে পাঠ্য[i]-এর প্রতিটি অক্ষর অফসেট কী[i] দিয়ে ডানদিকে সরানো হয়। এখানে অফসেটটি বর্ণমালায় কী[i] এর অবস্থান (A=0, B=1 ইত্যাদি) দ্বারা উপস্থাপিত হয়।

সুতরাং, যদি ইনপুটটি পাঠ্য ="কোড", কী ="টিম" এর মতো হয়, তাহলে আউটপুট হবে "vsdq"

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • cip :=একটি নতুন তালিকা
  • start :='a' এর ASCII
  • টেক্সট থেকে প্রতিটি l এবং কী থেকে k, করুন
    • shift :=(k এর ASCII) - শুরু করুন
    • pos :=start +((l এর ASCII) - start + shift) mod 26
    • cip-এর শেষে pos-এর অক্ষর সন্নিবেশ করান
  • সিপির স্ট্রিং যোগ করুন এবং রিটার্ন করুন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, text, key):
      cip = []
      start = ord('a')
      for l, k in zip(text, key):
         shift = ord(k) - start
         pos = start + (ord(l) - start + shift) % 26
         cip.append(chr(pos))
      return ''.join([l for l in cip])
ob = Solution()
text = "code"
key = "team"
print(ob.solve(text, key))

ইনপুট

"code", "team"

আউটপুট

vsdq

  1. পাইথন প্রোগ্রামে একটি তালিকাকে স্ট্রিংয়ে রূপান্তর করুন

  2. একটি তালিকাকে স্ট্রিং-এ রূপান্তর করতে পাইথন প্রোগ্রাম

  3. % ব্যবহার করে পাইথনে স্ট্রিং ফরম্যাটিং?

  4. একটি প্রদত্ত স্ট্রিং সেট ব্যবহার করে স্বর সংখ্যা গণনা করার জন্য পাইথন প্রোগ্রাম