comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Cifrado Escitala

  • 0 Respuestas
  • 1560 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Sanko

  • *
  • Underc0der
  • Mensajes: 541
  • Actividad:
    0%
  • Reputación 0
  • ¿Puedes?
    • Ver Perfil
    • Underc0de
« en: Agosto 26, 2013, 09:10:24 pm »
Buenas, hoy les traigo mi solución a un reto de programación en No tienes permisos para ver links. Registrate o Entra con tu cuenta

Código: Python
  1. #Cifrado escitala en python - Sanko
  2. #Reto cifrado escitala - udtools.net
  3.  
  4. # -*- coding: utf-8 -*-
  5.  
  6. from math import ceil
  7.  
  8. class cif_escitala():
  9.        
  10.         def __init__(self):
  11.                 self.table = []
  12.                 self.main()
  13.                
  14.         def main(self):
  15.                 print "Escitala cipher Python\n"
  16.                 self.text = raw_input("Write the text to encode|> ")
  17.                 self.n_col = input("\nWrite the number of columns|> ")
  18.                
  19.                 if self.text != '' and self.n_col != '':
  20.                         self.__encode(self.text, self.n_col)
  21.                         self.__decode()
  22.                        
  23.                         print "\nNumber of columns: %s" % self.n_col
  24.                         print "Encoded: %s" % self.encoded
  25.                         print "Decoded: %s" % self.decoded
  26.        
  27.         def __encode(self, text, n_col):
  28.                 longitud = len(self.text)
  29.                 if longitud > self.n_col:
  30.                         h = ceil(longitud / self.n_col)
  31.                         while h:
  32.                                 self.table.append(self.text[:self.n_col])
  33.                                 self.text = self.text[self.n_col:]
  34.                                 h -= 1
  35.                                
  36.                         self.table.append(self.text.ljust(self.n_col))
  37.                         self.text = ''.join(map(''.join, zip(*self.table)))
  38.                 else:
  39.                         print "n_col is bigger than longitud"
  40.                        
  41.                 self.encoded = self.text.rstrip()
  42.                
  43.         def __decode(self):
  44.                 self.decoded = self.__encode(self.encoded, ceil(len(self.encoded) / self.n_col))
  45.                
  46.                
  47. cif_escitala()

Una imágen vale más que mil palabras :


Saludos
Sigueme en Twitter : @Sankosk
Estos nuevos staff no tienen puta idea XD

 

¿Te gustó el post? COMPARTILO!



Cifrado julio cesar

Iniciado por blozzter

Respuestas: 0
Vistas: 1634
Último mensaje Mayo 26, 2011, 01:53:13 am
por blozzter
Cifrado rot13 y atbash

Iniciado por Once

Respuestas: 3
Vistas: 2979
Último mensaje Abril 23, 2013, 08:47:19 pm
por k0ws
Cifrado Compresor [Archivos]

Iniciado por Azav

Respuestas: 8
Vistas: 1845
Último mensaje Enero 30, 2015, 04:00:56 am
por Once
Cifrado Kamasutra

Iniciado por Sanko

Respuestas: 0
Vistas: 1573
Último mensaje Agosto 26, 2013, 09:13:55 pm
por Sanko
[GUI] Cifrado Caesar

Iniciado por Barlan

Respuestas: 7
Vistas: 2266
Último mensaje Mayo 19, 2015, 04:45:59 pm
por Achraf