Este código es una colaboración de: Melvin Guerrero
Descripción:
Programa de criptografía programado en LatinoCopiar todo el código
Descargar código .lat
Todos los códigos fueron copiados a su portapapeles
/*
Este programa de criptografía está escrito en Latino (un lenguaje de programación con sintaxis al Español).
El código de este programa está basado en el libro "Inventa tus propios juegos de computadora con Python",
del Capítulo 14 - Cifrado César, escrito por: Al Sweigart
y traducido por: Alfredo Carella, Alejandro Pernin, y Francisco Palm.
El código original se puede encontrar en la siguiente link https://inventwithpython.com/es/14.html
Programa de criptografía en Latino, creado el 1 de Junio, 2019 por Melvin Guerrero
*/
###### Código fuente del programa ######
TAM_MAX_CLAVE=25 //define el tamaño máximo de la contraseña
modo=""
clave=""
mensaje=""
traduccion=""
funcion obtenerModo()
mientras modo != "encriptar" && modo != "desencriptar"
escribir ("¿Deseas 'encriptar' o 'desencriptar' un mensaje? escriba la palabra completa")
m=leer()
modo = cadena.minusculas(m) //cambia a minusculas las letras
si cadena.comparar(modo, "encriptar") == 0 || cadena.comparar(modo, "desencriptar") == 0 //comprueva que sea correcta
retorno modo //si el usuario escribio "encriptar" o "desencriptar" devolvera el valor como positivo
sino
escribir ("Ingresa 'encriptar' o 'desencriptar'")
fin
fin
fin
funcion obtenerMensaje()
escribir ("Ingresa tu mensaje: ")
mesaje=leer() //lee el mensaje que el usuario este digitando y lo asigna a la variable
retorno mesaje
fin
funcion obtenerClave()
mientras verdadero
escribir ("Ingresa el número de clave (1-"..TAM_MAX_CLAVE..")")
clave=leer()
si clave >=1 && clave <= TAM_MAX_CLAVE //comprueva que el numero digitado este dentro del rango marcado
retorno clave //si el valor esta dentro del rango marcado devuelve el valor como positivo
fin
fin
fin
funcion obtenerMensajeTraducido(modo, mensaje, clave)
si cadena.comparar(modo, "desencriptar") == 0
clave=-clave //invierte el valor de clave a un numero positivo o negativo
fin
invMensaje=cadena.invertir(mensaje)//invierte el mensaje de texto para ser mas dificil decodificar para el humano
desde (x=0;x<cadena.longitud(invMensaje);x++)
si cadena.es_alfa(invMensaje[x]) == verdadero
numBytes=cadena.char(cadena.bytes(invMensaje[x]))+clave//convierte el valor a bytes para ser sumados por la clave
//verifica si el valor alfanumerico es MAYUSCULA o minuscula
si cadena.char(cadena.bytes(invMensaje[x])) > 64 && cadena.char(cadena.bytes(invMensaje[x])) < 91 //mayusculas entre 65 a 90
si numBytes > cadena.char(cadena.bytes("Z"))
numBytes = numBytes - 26
osi numBytes < cadena.char(cadena.bytes("A"))
numBytes = numBytes + 26
fin
osi cadena.char(cadena.bytes(invMensaje[x])) > 96 && cadena.char(cadena.bytes(invMensaje[x])) < 123 //minusculas entre 97 a 122
si numBytes > cadena.char(cadena.bytes("z"))
numBytes = numBytes - 26
osi numBytes < cadena.char(cadena.bytes("a"))
numBytes = numBytes + 26
fin
fin
traduccion=traduccion..cadena.char(numBytes)//convierte el valor de la suma de bytes a un nuevo caracter
sino
traduccion=traduccion..invMensaje[x]
fin
fin
retorno traduccion//devuelve el valor de la traduccion al terminar de codificar
fin
//aqui se llaman las funciones para ser ejecutadas una por una
modo=obtenerModo()
mensaje=obtenerMensaje()
clave=obtenerClave()
traduccion=obtenerMensajeTraducido(modo, mensaje, clave)
escribir ("Tu texto traducido es:")
escribir (traduccion)
###### Fin del programa ######
0 Comentarios