Cifrado Escitala

  • 0 Respuestas
  • 2524 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

Cifrado Escitala

  • en: Agosto 26, 2013, 09:10:24 pm
Buenas, hoy les traigo mi solución a un reto de programación en You are not allowed to view links. Register or Login

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

 

Cifrado Cesar ... 3 Funciones

Iniciado por darkucla

Respuestas: 3
Vistas: 534
Último mensaje Enero 16, 2020, 12:42:18 am
por darkucla
Cifrado julio cesar

Iniciado por blozzter

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

Iniciado por Once

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

Iniciado por Azav

Respuestas: 8
Vistas: 4056
Último mensaje Enero 30, 2015, 04:00:56 am
por Once
Cifrado de Vigenère

Iniciado por Sanko

Respuestas: 1
Vistas: 2728
Último mensaje Septiembre 10, 2013, 10:23:26 am
por 79137913