Mengenkripsi pesan dengan Python. Dari yang sederhana sampai yang rumit. Sandi Caesar

Sedikit tentang proyeknya

Saya, secara pribadi, telah lama tertarik dengan topik enkripsi informasi, namun, setiap kali terjun ke topik ini, saya menyadari betapa sulitnya dan menyadari bahwa lebih baik memulai dengan sesuatu yang lebih sederhana. Saya, secara pribadi, berencana untuk menulis sejumlah artikel tentang topik ini, di mana saya akan menunjukkan kepada Anda berbagai algoritma enkripsi dan implementasinya dalam Python , mendemonstrasikan dan membongkar proyek saya yang dibuat ke arah ini. Jadi, mari kita mulai.






Untuk memulainya, saya ingin memberi tahu Anda algoritme yang sudah dikenal yang akan kami pertimbangkan dalam artikel saya. Daftarnya disajikan kepada Anda di bawah ini:





  • Sandi Caesar





  • Sandi Vigenère





  • Sandi pengganti





  • Sandi homofonik





  • Enkripsi RSA





Sandi Caesar

Jadi, setelah pengantar singkat ke siklus, saya mengusulkan untuk beralih ke topik utama artikel hari ini, yaitu Caesar Cipher.





Apa itu?

Sandi Caesar adalah jenis sandi substitusi sederhana di mana setiap huruf dari teks biasa diganti dengan sebuah huruf dengan jumlah posisi tetap di bawah alfabet. Prinsip operasinya dapat dilihat pada ilustrasi berikut:





Fitur apa yang dimilikinya?

Di Caesar Cipher, seperti dalam algoritma enkripsi, saya dapat membedakan dua fitur utama. Fitur pertama adalah kesederhanaan dan ketersediaan metode enkripsi, yang dapat membantu Anda menyelami topik ini, fitur kedua, pada kenyataannya, metode enkripsi itu sendiri.





Implementasi perangkat lunak

, , , , .





, , . .





alfavit =  'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
#  
      
      



, , . , , "" , "2", "".





,



smeshenie, , message, , , upper(),



, . itog, . :





smeshenie = int(input(' : '))    #    
message = input("  : ").upper()    # ,    
itog = ''    #     
      
      



, . for



, , , alfavit, ( ):





for i in message:
    mesto = alfavit.find(i)    #    
    new_mesto = mesto + smeshenie    #      smeshenie 
      
      



, if



, itog :





if i in alfavit:
        itog += alfavit[new_mesto] #        
    else:													 #      .
        itog += i
print (itog)

      
      



, . , :





alfavit =  'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
smeshenie = int(input(' : '))
message = input("  : ").upper()
itog = ''
for i in message:
    mesto = alfavit.find(i)
    new_mesto = mesto + smeshenie
    if i in alfavit:
        itog += alfavit[new_mesto]
    else:
        itog += i
print (itog)

      
      



, , , .





, - . ( ).





, "" . :





alfavit =  'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
smeshenie = int(input(' : '))
message = input("  : ").upper()    #  ,  
itog = ''
      
      



Sisanya dapat dibiarkan sama, tetapi jika mau, Anda dapat mengubah nama variabel.





Pada umumnya, perubahan 'terbesar' bagi kita akan terjadi di bagian kode tempat kita memiliki algoritme.





Hasil

Anda telah berhasil menulis algoritme untuk mengenkripsi dan mendekripsi pesan dengan Python menggunakan metode Caesar. Pada artikel berikutnya, kita akan melihat sandi Vigenère, serta menganalisis implementasinya dengan Python, tetapi untuk saat ini saya sarankan Anda menulis di opsi komentar untuk memodernisasi program (saran dan keinginan kode atau millet). Saya pasti akan mempertimbangkan pendapat Anda.








All Articles