Aprovechando el curso, vamos a ver uno de los temas que más me gustan, la criptografía si quieren saber un poco más sobre esta rama de estudio tengo un vídeo explicando este mismo tema en el siguiente canal:
Ó en el siguiente blog que tengo: R3gularWeb
Resumiendo, el cifrado atbash lo único que hace es invertir nuestro alfabeto, cambiando la letra A por la Z, la B por la Y, la C por X y así sucesivamente.
Entonces, si tenemos como entrada PLATZI el resultado será KOZGAR puedes comprobarlo por tu propia cuenta
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
'ZYXWVUTSRQPONMLKJIHGFEDCBA'
Entonces vamos a iniciar, primer paso crear un archivo .py en mi caso lo voy a llamar atbash.py y tendremos lo normal en python, un punto donde le decimos al compilador en que punto tiene que iniciar el programa
if__name__ == "__main__":
Dentro vamos a tener una variable que va a recibir el mensaje a cifrar
if __name__ == "__main__":
message = input('Write a message: ')
Lo siguiente es tener nuestra función que realice el proceso de cifrar y descifrar, esta va a tener un parámetro que será el mensaje del usuario.
defatbash(message):passif __name__ == "__main__":
message = input('Write a message: ')
Dentro de nuestro método tendremos dos constantes que será nuestro abecedario y el abecedario invertido, también una variable result que guardará el resultado de todo el proceso.
defatbash(message):
ABC = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ZYX = 'ZYXWVUTSRQPONMLKJIHGFEDCBA'
result = ''
Bien, ¿Cómo vamos a realizar este proceso? voy a enlistar los paso que haré a continuación.
Bien , ya con esto espero puedas entender el siguiente bloque de código:
for letter in message:
result += ZYX[ABC.index(letter)]
Como se ha visto en el curso, para recorrer un string podemos utilizar un bucle for, entonces si tenemos Platzi como entrada el ciclo hará lo siguiente:
Ahora con index() podemos obtener el índice de un char dentro de una cadeta de texto entonces:
ABC.index(letter)
Dentro del ciclo puede verse de la siguiente manera
ABC.index('P')
Para el ejemplo de PLATZI vamos a tener los siguientes valores:
Ya para finalizar le pasamos cada uno de los índices al string del abecedario invertido y de ahí viene este parte del código
ZYX[ABC.index(letter)]
Simple ¿no?
Entonces solo tenemos que retornar nuestra variable result y llamar a la función atbash desde el punto de inicio, pasandole nuestra variable message
def atbash(message):
ABC = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ZYX = 'ZYXWVUTSRQPONMLKJIHGFEDCBA'
result = ''
for letter in message:
result += ZYX[ABC.index(letter)]
returnresultif __name__ == "__main__":
message = input('Write a message: ')
print(f'Result: { atbash(message.upper()) }')
No se como llegué aqui… Pero me interesa y lo pondré en práctica, si puedes dar mas cifrados lo agradezco