Created
January 28, 2023 17:55
-
-
Save bayasdev/0a737383459027e0e5dc7d9b532850bc to your computer and use it in GitHub Desktop.
solución encriptación estilo ROT (PyPizza 2023)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
letras_numeros = { | |
'A': 1, | |
'B': 2, | |
'C': 3, | |
'D': 4, | |
'E': 5, | |
'F': 6, | |
'G': 7, | |
'H': 8, | |
'I': 9, | |
'J': 10, | |
'K': 11, | |
'L': 12, | |
'M': 13, | |
'N': 14, | |
'O': 15, | |
'P': 16, | |
'Q': 17, | |
'R': 18, | |
'S': 19, | |
'T': 20, | |
'U': 21, | |
'V': 22, | |
'W': 23, | |
'X': 24, | |
'Y': 25, | |
'Z': 26, | |
' ': 27 | |
} | |
def encriptar(string): | |
resultado = '' | |
string_mayusculas = string.upper() | |
for caracter in string_mayusculas: | |
letra_numero = letras_numeros[caracter] | |
letra_numero += 13 | |
if letra_numero > 27: | |
modulo = letra_numero % 27 | |
else: | |
modulo = letra_numero | |
for letra, numero in letras_numeros.items(): | |
if numero == modulo: | |
letra_encriptada = letra | |
resultado += letra_encriptada | |
return resultado | |
def desencriptar(string): | |
resultado = '' | |
string_mayusculas = string.upper() | |
for caracter in string_mayusculas: | |
letra_numero = letras_numeros[caracter] | |
letra_numero -= 13 | |
if letra_numero < 1: | |
letra_numero += 27 | |
for letra, numero in letras_numeros.items(): | |
if numero == letra_numero: | |
letra_desencriptada = letra | |
resultado += letra_desencriptada | |
return resultado | |
input_usuario = input('Ingrese una cadena de texto: ') | |
cadena_encriptada = encriptar(input_usuario) | |
print(f'Cadena encriptada: {cadena_encriptada}') | |
cadena_desencriptada = desencriptar(cadena_encriptada) | |
print(f'Cadena desencriptada: {cadena_desencriptada}') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment