Cifrado Kamasutra

Iniciado por Sanko, Agosto 26, 2013, 09:13:55 PM

Tema anterior - Siguiente tema

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

Buenas, vengo a traerles la solución a un reto de You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Código: python
#Cifrado Kamasutra en Python - Sanko
#Reto UDT - Cifrado Kamasutra

# -*- coding: utf-8 -*-
from random import randint
from string import maketrans

class cif_Kamasutra():

def __init__(self):
self.text = raw_input("Write the text to encode|> ")
self.text = self.text.upper()
self._gen_alfabeto()

def _gen_alfabeto(self):
#This func has been coded by Pink
self.alfabeto = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
letra1=""
letra2=""
self.retorno=""

for n in range(len(self.alfabeto)):
ram = randint(0,len(self.alfabeto)-1)
letra1 = self.alfabeto[ram]
letra2 = self.alfabeto[n]
self.alfabeto[n] = letra1
self.alfabeto[ram] = letra2

for n in range(len(self.alfabeto)):
self.retorno+=self.alfabeto[n]

#extra code
print "\nDict: %s"% self.retorno
self.new_alphabet = self.retorno[::-1]

self.__encode()
self.__decode()

def __encode(self):
self.encoded = maketrans(self.retorno, self.new_alphabet)
self.final_str = self.text.translate(self.encoded)
print "Encoded: ", self.text.translate(self.encoded)

def __decode(self):
decoded = maketrans(self.new_alphabet, self.retorno)
print "Decoded: ", self.final_str.translate(decoded)


cif_Kamasutra()


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


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