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