Criptografando mensagens em Python. Do simples ao complexo. Cifra de César

Um pouco sobre o projeto

Eu, pessoalmente, há muito me interesso pelo tópico de criptografia de informações, porém, cada vez que mergulhei neste tópico, percebi como é difícil e percebi que era melhor começar com algo mais simples. Eu, pessoalmente, pretendo escrever uma série de artigos sobre este assunto, nos quais vou mostrar vários algoritmos de criptografia e sua implementação em Python , demonstrar e desmontar meu projeto criado nesta direção. Então, vamos começar.






Para começar, gostaria de dizer quais algoritmos já conhecidos consideraremos em meus artigos. A lista é apresentada a você abaixo:





  • Cifra de César





  • Cifra de Vigenère





  • Cifra de substituição





  • Cifra homofônica





  • Criptografia RSA





Cifra de César

Assim, após uma breve introdução ao ciclo, proponho passar ao tema principal do artigo de hoje, a saber, a Cifra de César.





O que é isso?

A cifra de César é um tipo simples de cifra de substituição em que cada letra do texto simples é substituída por uma letra com um número fixo de posições abaixo do alfabeto. Seu princípio de funcionamento pode ser visto na seguinte ilustração:





Quais recursos ele tem?

No Caesar Cipher, assim como no algoritmo de criptografia, posso distinguir duas características principais. O primeiro recurso é a simplicidade e disponibilidade do método de criptografia, o que pode ajudá-lo a mergulhar neste tópico, o segundo recurso é, na verdade, o próprio método de criptografia.





Implementação de software

, , , , .





, , . .





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 = ''
      
      



O resto pode ficar igual, mas se desejar, você pode alterar os nomes das variáveis.





Em geral, as 'maiores' mudanças para nós ocorrerão na parte do código onde temos o algoritmo.





Resultado

Você escreveu com sucesso um algoritmo para criptografar e descriptografar uma mensagem em Python usando o método Caesar. No próximo artigo, veremos a cifra de Vigenère, bem como analisaremos sua implementação em Python, mas por enquanto sugiro que você escreva nos comentários opções para modernizar o programa (código ou sugestões e desejos de painço). Definitivamente irei considerar sua opinião.








All Articles