Skip to content

Instantly share code, notes, and snippets.

@ErikRamses
Created July 4, 2013 10:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ErikRamses/5926670 to your computer and use it in GitHub Desktop.
Save ErikRamses/5926670 to your computer and use it in GitHub Desktop.
autentificador
#!/usr/bin/python2.7
# enable debugging
#El programa es producto de varias recopilaciones de rsa y ejemplos de cgi
#URLS: http://blog.hackxcrack.es/2011/11/introduccion-la-criptografia-moderna_09.html
#http://code.activestate.com/recipes/572196-rsa/
#http://cic.puj.edu.co/wiki/doku.php?id=materias:laboratorio_de_lenguajes_ii:lableng2:ejemplos1
#http://www.tutorialspoint.com/python/python_cgi_programming.htm
from algoritmoRSA import rsa #utilizamos el algoritmo de rsa que ya tenemos
import cgi, cgitb #importamos las librerias para cgi
import random #importamos random
def guardarvalor(archivo, valor): #funcion que guarda un valor en un archivo
f1 = open(archivo, "w") #funcion que abre el archivo con permisos de escritura
f1.write(str(valor)) #se escribe el archivo como string
f1.close() #se cierra el archivo
def Abrirllaves(archivo, usuario): #funcion para leer llaves o claves
f1 = open(archivo, "r") #Se abre el archivo de solo lectura
for element in f1:
element = i.split(",") #se separa por comas entre cada valor en i
if element[0].lower() == usuario.lower() : #el usuario se pasa a minusculas
fl.close() #cerramos archivo
return int(element[1]), int(element[2]) #se devuelve el modulo y la llave privada
fl.close()
return False
def cambio(x):
return x*3+10; #Se ajusta un cambio en el valor de asegurando que sea impar x.
def verificar(usuario, y): #funcion que checa los datos ingresados
valororiginal = cargarvalores("valores.dat")
if valororiginal == y: #los compara con los valores originales
return True #si se cumple retorna verdadero
else:
return False #si no, retorna falso
def cargarvalores(archivo): #Funcion utilizada para guardar valores en un archivo
f1 = open(archivo, "r") #abrimos el archivo con sólo lectura
valor = f1.read() #se obtiene todo el contenido del archivo
f1.close() #cerramos
return int(valor) #devuelve el valor entero del archivo
if __name__ == '__main__':
entrada = cgi.FieldStorage() #hacemos uso del cgi para interactuar con el formulario
if entrada.has_key("x") and entrada.has_key("usuario"): #Se verifica que se hayan llenado los campos de texto
n, e = Abrirllaves( "usuarios.dat", str(entrada["usuario"].value) ) #Se obtienen las llaves del archivo
y = rsa.descifrado(n, e, int(entrada["x"].value)) #se iguala al modulo descifrado
print str( verificar(str(entrada["usuario"].value), y) ) #imprimimos el nombre del usuario, dentro del html
else: #si no se encuentran entradas
x = random.randint(1, 1000) #se generan aleatoriamente
guardarvalor("valores.dat", cambio(x)) #se guardan en el archivo valores y se hace un cambio en x para poder usarlo en el algoritmo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment