Autor Tema: Cifrado RSA  (Leído 4119 veces)

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

Desconectado sanko

  • Recién llegado
  • *
  • Mensajes: 30
  • Karma: +2/-1
  • ¿Puedes?
    • Ver Perfil
    • StrikeGeek
Cifrado RSA
« : diciembre 30, 2013, 02:40:37 pm »
Solución al reto de programación "cifrado RSA" de overxflow en udtools/underc0de

Código: python [Seleccionar]
class RSA:
   
    #initializing
    def __init__(self, p, q):
        self.p = p
        self.q = q
       
        #defining n and z to resolve ops
        self.n = p * q
        self.z = (p-1) * (q-1)
        self.e = self.z - 1
       
        """
        def _extD():
            for self.d in range(1, 100):
                if (self.e * self.d) % self.z == 1:
                    return self.d
               
            return self.d
                   
        _extD()
        """
       
        self.encoded = []
        self.decoded = []
   
    # func to extract chars from a string
    def _extChar(self, text):
        self.text = text
        if text:
            self._encode(text[0])
            self._encode(self._extChar(text[1:]))
           
           
   
    #recive a char from extChar
    def _encode(self, m):
        self.m = m
        if m:
            m = ord(m)
            c = (m ^ self.e) % self.n
            self.encoded.append(c)
       
    """   
    def _decode(self, m):
        self.m = m
        if m:
            c = (m ^ self.d) % self.n
            self.decoded.append(c)
    """
 
#ejemplo de uso   
obj = RSA(3, 5)
obj._extChar("hola sanko")
print obj.encoded #output: [6, 14, 2, 12, 9, 11, 12, 0, 3, 14]


He comentado las func del decode porque tiraban algunos problemas y no quiero matarme la cabeza demasiado.
Saludos
IN-Seguridad Informática & Programación
StrikeGeek.org | Underc0de.org
Si has encontrado útil este articulo recuerda que puedes ayudarnos con tu donación voluntaria la cual ayudará al staff y a la mantención del foro.


. . . . . . . .