Ultimas do CanalQb

Python - Cifra de Transposição

Python - Cifra de Transposição
Canal Qb

A Cifra de Transposição é um método de criptografia que se baseia na reorganização das letras ou símbolos do texto original, sem alterar os próprios caracteres. Em vez de substituir os caracteres por outros, como na cifra de substituição, a cifra de transposição reorganiza a ordem das letras ou símbolos para ocultar a mensagem original.

Existem várias técnicas de cifra de transposição, mas a ideia geral é a mesma: alterar a ordem das letras ou símbolos para dificultar a leitura da mensagem sem a chave correta.

Um exemplo comum de cifra de transposição é a cifra de coluna. Nesse método, as letras do texto original são escritas em linhas, mas a mensagem é lida em colunas. A chave da cifra de coluna é o número de colunas na qual as letras devem ser agrupadas. Por exemplo, se a chave for 4, as letras serão escritas em quatro colunas e, em seguida, a mensagem é lida coluna por coluna para obter a mensagem cifrada.

Para descriptografar uma mensagem cifrada com uma cifra de transposição, é necessário conhecer a chave e reverter o processo de rearranjo das letras ou símbolos, colocando-os novamente em sua ordem original.

A cifra de transposição é um método relativamente simples de criptografia, mas pode ser eficaz para ocultar a mensagem original, especialmente se combinado com outros métodos criptográficos. No entanto, em comparação com os métodos modernos de criptografia, as cifras de transposição são consideradas menos seguras e não são amplamente utilizadas em aplicações de segurança atualmente.

def cifrar_transposicao(chave, texto):
    colunas = len(chave)
    linhas = -(-len(texto) // colunas)
    texto_cifrado = ""

    texto += " " * (linhas * colunas - len(texto))

    for coluna in range(colunas):
        for linha in range(linhas):
            texto_cifrado += texto[linha * colunas + chave.index(coluna + 1)]

    return texto_cifrado

chave = [3, 1, 4, 2]
texto = "OLA MUNDO"

texto_cifrado = cifrar_transposicao(chave, texto)
print("Texto cifrado: " + texto_cifrado)

Nenhum comentário

Comente só assim vamos crescer juntos!

Observação: somente um membro deste blog pode postar um comentário.