#!/usr/bin/python
import binascii
import os
tam = 15
def codificar(llave, Msj):
if len(Msj) <= tam:
llave_int = int(llave)
espacios = tam - len(Msj)
completa = Msj.ljust(espacios)
Msj_int = int(binascii.hexlify(completa), 16)
Cod_xor = llave_int ^ Msj_int
print "Mensaje codificado " + str(Cod_xor)
return Cod_xor
else:
print "El mensaje es muy grande, necesitamos " + str(tam) + " caracteres"
return
def decodificar(llave, Msj_cod):
Msj_cod_int = int(Msj_cod)
llave_int = int(llave)
Dec_xor = llave_int ^ Msj_cod_int
Decodificado = binascii.unhexlify(\'%x\' % Dec_xor)
print "Mensaje decodificado " + str(Decodificado)
return Decodificado
def main():
while True:
print "Menu\\n1. Enviar a Roberto\\n2. Enviar a Ramon\\n"
escoge = str(raw_input(">> "))
if escoge == \'q\':
break
if os.stat("./Ramon/key_2.txt").st_size != 0 and os.stat("./Roberto/key_1.txt") != 0:
if escoge == \'1\':
print "Escribe el mensaje a enviar a Roberto\\n"
Msj_rob = str(raw_input(">> "))
ramon_r = open("./Ramon/key_2.txt", "r")
lineas_ram = ramon_r.readlines()
ramon_r.close()
llave_ram = lineas_ram[0].replace("\\n", "")
print "Llave usada por Ramon = " + str(llave_ram)
cod = codificar(llave_ram, Msj_rob)
ramon_w = open("./Ramon/key_2.txt", "w")
ramon_w.writelines([x for x in lineas_ram[1:]])
ramon_w.close()
print "Recibido por Roberto"
print "Ahora Roberto lo va a decodificar"
roberto_r = open("./Roberto/key_1.txt", "r")
lineas_rob = roberto_r.readlines()
roberto_r.close()
llave_rob = lineas_rob[0].replace("\\n", "")
print "Llave usada por Roberto = " + str(llave_rob)
dec = decodificar(llave_rob, cod)
roberto_w = open("./Roberto/key_1.txt", "w")
roberto_w.writelines([x for x in lineas_rob[1:]])
roberto_w.close()
continue
if escoge == \'2\':
print "Escribe el mensaje a enviar a Ramon\\n"
Msj_ram = str(raw_input(">> "))
roberto_r = open("./Roberto/key_1.txt", "r")
lineas_rob = roberto_r.readlines()
roberto_r.close()
llave_rob = lineas_rob[0].replace("\\n", "")
print "Llave usada por Roberto = " + str(llave_rob)
cod = codificar(llave_rob, Msj_ram)
roberto_w = open("./Roberto/key_1.txt", "w")
roberto_w.writelines([x for x in lineas_rob[1:]])
roberto_w.close()
print "Recibido por Ramon"
print "Ahora Ramon lo va a decodificar"
ramon_r = open("./Ramon/key_2.txt", "r")
lineas_ram = ramon_r.readlines()
ramon_r.close()
llave_ram = lineas_ram[0].replace("\\n", "")
print "Llave usada por Ramon = " + str(llave_ram)
dec = decodificar(llave_ram, cod)
ramon_w = open("./Ramon/key_2.txt", "w")
ramon_w.writelines([x for x in lineas_ram[1:]])
ramon_w.close()
continue
else:
print "Escoge un valor [1 - 2]\\n"
continue
else:
print "Ya no existen llaves\\n"
break
main()