Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
Cargando

Autor Tema: Programa de Autentificación  (Leído 428 veces)

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

Desconectado WhiZ

  • Residente de Hack x Crack [L4]
  • ****
  • Topic Author
  • Mensajes: 331
  • Hacking is not a Crime!
    • Ver Perfil
    • Hack Connection
Programa de Autentificación
« en: Enero 20, 2012, 07:48:18 am »
Hola Gente! Q tal? Acá estoy, otra vez, pero esta vez no es para subir ningún libro, sino para mostrar sus resultados!!! ;D
Les cuento que, como dije ya lo he dicho en mi otro post de programación, soy nuevo en este tema, por lo que, lo que verán a continuación (que tanto me enorgullece), probablemente sea una estupidez para muchos de ustedes.
Luego de leer 1 libro de python y la revista nueva (de 0 a python), acabo de desarrollar mi primer programa útil (un poquito nómas  :P). La verdad es que lo quiero compartir con ustedes, para que me corrijan y me aconsejen acerca de mis errores y, si por una de esas casualidades les llegara a servir, muchísimo mejor todavía. ;)
Como dice en el título del post, es un programa diseñado para autentificación. ¿Autentificarse dónde? Bueno, mi idea es que sirva para identificarse al ingresar a una determinada página web. Yo usé mi página "imaginaria" (www.whizweb.com), con lo que quiero hacer notar que está buena la idea de usarlo en páginas personales. El programa crea un archivo ("cuentas.dat") en su misma carpeta, donde quedan registrados los datos de aquellos que creen una cuenta con este programa, lo que nos permitiría llevar un registro de los nuevos usuarios en nuestra web.
Espero que les guste, y perdonen si está muy largo, desordenado y demás.
Aquí va...

Código: [Seleccionar]
# -*- coding: utf-8 -*-

import socket
sock = socket.socket()

def creaArchivo():
    try:
        lista = open("cuentas.dat", "r")
        lista.close()
    except:
        lista = open("cuentas.dat", "w")
        lista.close()

def userLogin():
    user = raw_input("Usuario: ")
    password = raw_input("Contraseña: ")
    lista = open("cuentas.dat", "r")
    leer = lista.read()
    lista.close()
    if (len(user)>0) and (len(password)>0):
        if user in leer and password in leer:
            sock.connect(("192.168.1.102", 8080)) #Poner página propia o deseada.
            sock.send("GET / HTTP/1.1\r\n")
            sock.send("HOST:192.168.1.102\r\n\r\n")
            data = sock.recv(10240)
            print data
        else:
            print "Incorrecto"
            print ""
            userLogin()
    else:
         print "Datos incompletos"
         print ""
         userLogin()

def logs(lista, nombre, apellido, sexo, nombreCuenta, contrasenia):
lista = open("cuentas.dat", "r")
leer = lista.read()
lista.close()
escribir = leer + "\n\n" + "Nombre: " + nombre + "\nApellido: " + apellido + "\nSexo: " + sexo + "\nCuenta: " + nombreCuenta + "\nContraseña: " + contrasenia
lista = open("cuentas.dat", "w")
lista.write(escribir)
lista.close()

def creaCuenta():
        cuenta = raw_input("¿Tienes cuenta?(si/no): ")
        if cuenta == "si":
                userLogin()
                return 1
        if cuenta == "no":
                print "A continuación podrá crear su cuenta: "
                lista = open("cuentas.dat", "r")
                nombre = raw_input("Nombre: ")
                apellido = raw_input("Apellido: ")
                sexo = raw_input("Sexo(m/f): ")
                nombreCuenta = raw_input("Nombre de su cuenta: ")
                contrasenia = raw_input("Contraseña de su cuenta: ")
                logs(lista, nombre, apellido, sexo, nombreCuenta, contrasenia)
                lista.close()
                print "Su cuenta ha sido creada exitosamente!"
                print ""
                userLogin()
        else:
                print "Respuesta incorrecta. Debes responder 'si/no'"
                print ""
                creaCuenta()

print "Bienvenido a WhiZWeb!!!"
creaArchivo()
creaCuenta()

P.D.: Los datos que se piden para crear las cuentas son 4 estupideces que se me ocurrieron a mi. Podrían modificarlo a su gusto para que les quede más completo.

Muy bien che! Eso es todo!
Muchas gracias por brindarme su ayuda cada vez que la necesito!
Un Abrazo!
WhiZ
« última modificación: Enero 20, 2012, 05:08:00 pm por WhiZ »
Código: [Seleccionar]
abc = ['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', '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']

num = [34, 0, 2, 10, 51, 29, 18, 0, 2, 10]

for n in num:
print abc[n],

Desconectado Libereco

  • Éste es mi foro! [L6]
  • *****
  • Mensajes: 944
    • Ver Perfil
Re:Programa de Autentificación
« Respuesta #1 en: Enero 20, 2012, 11:02:45 am »
Gracias por aportar.
Citar
Anarquía es la noción radical de que las demás personas no son de tu propiedad.

Desconectado WhiZ

  • Residente de Hack x Crack [L4]
  • ****
  • Topic Author
  • Mensajes: 331
  • Hacking is not a Crime!
    • Ver Perfil
    • Hack Connection
Re:Programa de Autentificación
« Respuesta #2 en: Enero 20, 2012, 04:35:24 pm »
La verdad es que le faltan un montón de cosas. Por ej., por ahora se me ocurren dos cosas que tendría que solucionar:
1_ No hay correlación entre usuario y contraseña, es decir, si escribo para una cuenta determinada la contraseña de otra cuenta, el programa lo toma como válido.
Ej., cuenta 1 = user, password y cuenta 2 = usuario, contraseña; yo podria ingresar con "user" como usuario y con "contraseña" como contraseña.
Además, no existen en sí el usuario y la contraseña. Por ej., si mi usuario es "user", pero yo ingreso como "use", lo toma como válido.
Tal vez para solucionarlo haya que crear una base de datos.
2_ Para que tenga sentido tendría que aparecer en el navedador al intentar ingresar a la página. No creo que eso se pueda hacer con python.

Espero poder solucionarlo pronto. La verdad es que recién empiezo con programación, por lo que es probable que demore un poco en encontrar la solución.
A medida que aparezcan errores, trataré de solucionarlos para que sea realmente posible cumplir con el objetivo del programa.
Saludos!
WhiZ
« última modificación: Enero 20, 2012, 04:48:50 pm por WhiZ »
Código: [Seleccionar]
abc = ['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', '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']

num = [34, 0, 2, 10, 51, 29, 18, 0, 2, 10]

for n in num:
print abc[n],