document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #!/usr/bin/python                                                              
  2. import math
  3. import random
  4.  
  5. def esPrimo(num):
  6.     for x in range(2, int(math.sqrt(num))+1):
  7.         if num%x == 0:
  8.             return False
  9.     return True
  10.  
  11. def gcd(x, y):
  12.     while y:
  13.         x, y = y, x%y
  14.     return x
  15.  
  16. def gcde(a, b):
  17.     if b == 0:
  18.         return [1, 0, a]
  19.     else:
  20.         x, y, d = gcde(b, a%b)
  21.         return [y, x - (a//b)*y, d]
  22.  
  23. def generaPrimo():
  24.     while True:
  25.         num = int(random.uniform(10,99))
  26.         if esPrimo(num) == True:
  27.             break
  28.     return num
  29.  
  30. def generaE(phi_n):
  31.     e = generaPrimo()
  32.     if(gcd(phi_n, e) == 1):
  33.         return e
  34.     else:
  35.         generaE(phi_n)
  36.  
  37. def main():
  38.     usuario = raw_input("Escribe un usuario: ")
  39.     p = generaPrimo()
  40.     q = generaPrimo()
  41.     n = p*q
  42.     phi_n = (p-1)*(q-1)
  43.     e = generaE(phi_n)
  44.     lista = gcde(phi_n, e)
  45.     d = lista[1]
  46.     if d < 0:
  47.         d = d + phi_n
  48.     print "n = " + str(n) + " d = "+ str(d) + " e = " + str(e)
  49.     escribe_cliente = str(usuario) + " " + str(e) + " " + str(n) + "\\n"
  50.     f1 = open("Claves-Server.txt", "a")
  51.     f1.write(escribe_cliente)
  52.     f1.close()
  53.     archivo = str(usuario) + ".dat"
  54.     escribe_usuario = str(usuario) + " " + str(d) + " " + str(n) + "\\n"
  55.     f2 = open(archivo, "a")
  56.     f2.write(escribe_usuario)
  57.     f2.close()
  58.     print "usuario creado en " + str(archivo)
  59.  
  60. main()
');