آموزش رمز جایگزینی ساده در رمزنگاری با پایتون

3 سال پیش
آموزش رمز جایگزینی ساده در رمزنگاری با پایتون

آموزش رمز جایگزینی ساده در رمزنگاری با پایتون

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش رمز جایگزینی ساده در رمزنگاری با پایتون خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش پایتون مختص بازار کار

رمزنگاری جایگزینی ساده رایج ترین رمزنگاری است و شامل الگوریتمی برای جایگزینی هر کاراکتر متن ساده برای هر کاراکتر متن رمزنگار است. در این فرآیند ، حروف الفبا در مقایسه با الگوریتم رمز سزار بهم می خورند.

مثال

کلیدهای یک رمز عبور ساده برای جایگزینی معمولاً از ۲۶ حرف تشکیل شده است. یک کلید به عنوان مثال –

plain alphabet : abcdefghijklmnopqrstuvwxyz
cipher alphabet: phqgiumeaylnofdxjkrcvstzwb

 

یک مثال رمزگذاری

plaintext : defend the east wall of the castle
ciphertext: giuifg cei iprc tpnn du cei qprcni

 

کد زیر برنامه ای برای پیاده سازی رمز ساده جایگزینی را نشان می دهد –

import random, sys

LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
def main():
   message = ''
   if len(sys.argv) > 1:
      with open(sys.argv[1], 'r') as f:
         message = f.read()
   else:
      message = raw_input("Enter your message: ")
   mode = raw_input("E for Encrypt, D for Decrypt: ")
   key = ''
   
   while checkKey(key) is False:
      key = raw_input("Enter 26 ALPHA key (leave blank for random key): ")
      if key == '':
         key = getRandomKey()
      if checkKey(key) is False:
        print('There is an error in the key or symbol set.')
   translated = translateMessage(message, key, mode)
   print('Using key: %s' % (key))
   
   if len(sys.argv) > 1:
      fileOut = 'enc.' + sys.argv[1]
      with open(fileOut, 'w') as f:
         f.write(translated)
      print('Success! File written to: %s' % (fileOut))
   else: print('Result: ' + translated)

# Store the key into list, sort it, convert back, compare to alphabet.
def checkKey(key):
   keyString = ''.join(sorted(list(key)))
   return keyString == LETTERS
def translateMessage(message, key, mode):
   translated = ''
   charsA = LETTERS
   charsB = key
   
   # If decrypt mode is detected, swap A and B
   if mode == 'D':
      charsA, charsB = charsB, charsA
   for symbol in message:
      if symbol.upper() in charsA:
         symIndex = charsA.find(symbol.upper())
         if symbol.isupper():
            translated += charsB[symIndex].upper()
         else:
            translated += charsB[symIndex].lower()
                else:
               translated += symbol
         return translated
def getRandomKey():
   randomList = list(LETTERS)
   random.shuffle(randomList)
   return ''.join(randomList)
if __name__ == '__main__':
   main()

 

خروجی

هنگام اجرای کد ارائه شده در بالا می توانید خروجی زیر را مشاهده کنید –

Simple Substitution

 

منبع.

لیست جلسات قبل آموزش رمزنگاری با پایتون 

  1. آموزش رمزنگاری با پایتون
  2. بررسی اجمالی آموزش رمزنگاری با پایتون 
  3. آموزش رمزنگاری دو گانه در رمزنگاری با پایتون
  4. مرور و نصب پایتون
  5. آموزش رمز معکوس در رمزنگاری با پایتون
  6. آموزش رمز سزار در رمزنگاری با پایتون
  7. آموزش الگوریتم ROT13 در رمزنگاری با پایتون 
  8. آموزش رمزنگاری جابجایی در رمزنگاری با پایتون
  9. آموزش رمزنگاری با رمزنگاری جابجایی
  10. آموزش رمزگذاری فایل ها با رمزنگاری در پایتون
  11. آموزش رمزگشایی فایل ها با رمزنگاری در پایتون
  12. آموزش رمزگذاری و رمزگشایی Base64 در رمزنگاری با پایتون 
  13. آموزش فرایند XOR در رمزنگاری با پایتون
  14. آموزش رمز ضربی در رمزنگاری با پایتون
  15. آموزش رمز مستوی در رمزنگاری با پایتون
  16. آموزش هک کردن رمز تک حروف در رمزنگاری با پایتون

 

0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه