Underc0de

Programación Scripting => Python => Mensaje iniciado por: blozzter en Mayo 26, 2011, 01:53:13 AM

Título: Cifrado julio cesar
Publicado por: blozzter en Mayo 26, 2011, 01:53:13 AM
Código (python) [Seleccionar]
#   cifrado julio cesar
#   consiste en el desplazamiento de 3 letras hacia la derecha para cifrar
#   y 3 letras hacia la izquierda para descifrar
#   by blozzter

def cifrar(texto, largo):
    if largo > 0:
        i = 0
        palabra = ""
        print 'el texto cifrado es: ',
        while i < largo:
            num = ord(texto[i])
            if num == 120:
                letra = 'a'
            elif num == 121:
                letra = 'b'
            elif num == 122:
                letra = 'c'
            else:
                num += 3
                letra = chr(num)
            palabra += letra
            i += 1
        print palabra
           
def descifrar(texto, largo):
    if largo > 0:
        i = 0
        palabra = ""       #partimos con una variable vacia
        print 'el texto descifrado es: ',
        while i < largo:
            num = ord(texto[i])    #obtenemos el numero en ascii correspondiente a cada letra
            if num == 97:         #algunos casos especiales por estar en los limites
                letra = 'x'
            elif num == 98:
                letra = 'y'
            elif num == 99:
                letra = 'z'
            else:
                num -= 3       #disminuimos el numero ascii en 3
                letra = chr(num)   #asociamos el numero a una letra
            palabra += letra    #vamos armando la palabra letra por letra
            i += 1
        print palabra
   
           
texto = raw_input('ingresa texto: ')
largo = len(texto)  #encontramos cuantos caracteres tiene el texto

print '\n1.- cifrar'
print '2.- descifrar\n'
opcion = input('ingresa opcion: ')

if opcion == 1:
    cifrar(texto, largo)
   
if opcion == 2:
    descifrar(texto, largo)