CrazyProgrammer
Profilo di
Nome | CrazyProgrammer |
---|---|
Indirizzo email | n/a |
Messaggi | 5 |
-
- 2018-10-16 19:33:01
- Re: Errore di lettura del file username.txt (hash sha3 512)
- Forum >> Programmazione Python >> Files e Directory
- P.S. Potrei aver risolto avevo fatto un errore cretino
-
- 2018-10-16 19:10:06
- Re: Errore di lettura del file username.txt (hash sha3 512)
- Forum >> Programmazione Python >> Files e Directory
- In merito a quanto dici per la creazione del file anche io sapevo che il file viene creato subito (ho py sul computer ma per comodità uso repl.it come compiler online)
Ho provato più volte ma il file viene creato nella directory del programma solo quando digito exit
Provato su IDLE Python 3.6.2 su MacOS X 10.11.6 El Capitan
-
- 2018-10-16 19:04:13
- Re: Errore di lettura del file username.txt (hash sha3 512)
- Forum >> Programmazione Python >> Files e Directory
- Non ho ben capito come mantenere l'indentazione del codice per cui mi scuso in anticipo
-
- 2018-10-16 19:03:40
- Re: Errore di lettura del file username.txt (hash sha3 512)
- Forum >> Programmazione Python >> Files e Directory
- Grazie mille della risposta.
In primo luogo mi dispiace che trovi il mio codice confusionale e in effetti ho scritto quel post di fretta e ho caricato l'intero codice senza pensare che in effetti l'errore era solo in parte di esso.
In merito a quanto hai detto forse mi sono spiegato male, la shell di python non dà errore semplicemente il programma non fà quello che dovrebbe ovvero non confronta correttamente l'input inviato dall'utente con l'hash contenuto nel file
Di seguito come mi hai chiesto le righe di codice incriminate
import hashlib
import os
import random
usr=""
while len(usr) <= 0:
usr=input("Username:\n")
if len(usr) == 0:
print("L'username non può essere vuoto\n")
psw=""
try:
doc2=open(str(usr)+str(".txt"),"x")
except FileExistsError:
print("Esiste già un utente registrato con quell'username,per favore scegline un altro")
while len(psw) <= 0:
psw=input("Password:\n")
doc2=open(str(usr)+str(".txt"),"r+")
tohash2=hashlib.sha3_512(psw.encode())
passhash=tohash2.hexdigest()
doc2.write(passhash)
doc2.close()
print("Processo Terminato.Digita exit nella shell e successivamente avvia nuovamente il programma per applicare le modifiche.\n")
if len(psw) == 0:
print("La password non può essere vuota\n")
Questo provvede a "registrare" le credenziali
P.S. non vedo dove sia la confusione,nel codice mi sembra tutto molto chiaro
Per quanto riguarda il login
usr=""
var=True
while len(usr) <= 0:
usr=input("Username: ")
if len(usr) == 0:
print("L'username non può essere vuoto")
psw=""
while len(psw) <= 0:
psw=input("Password: ")
if len(psw) == 0:
print("La password non può essere vuota")
try:
doc=open(str(usr)+str(".txt"),"r")
lines=doc.readlines()
hashedpsw=str(lines0)
except FileNotFoundError:
print("L'username non corrisponde a nessun utente registrato")
if hashedpsw == psw:
print("Login effettuato con successo")
import logged
else:
print("Credenziali Errate")
Spero in un'altra risposta veloce quanto la prima,grazie in anticipo
P.P.S Grazie per le critiche,proverò a migliorare il modo in cui scrivo, ma avresti dei consigli specifici?
-
- 2018-10-15 18:15:40
- Errore di lettura del file username.txt (hash sha3 512)
- Forum >> Programmazione Python >> Files e Directory
- Salve a tutti,
Questo è il mio primo messaggio sul forum al quale mi sono iscritto proprio perché non sto trovando una soluzione al mio problema.
Mi spiego in breve, ho scritto una shell in Py 3.6.2 come passatempo ma sto riscontrando un problema che ne pregiudica parzialmente l'uso.
Il problema è il seguente : L'utente quando si registra deve scegliere un username e una password e fin qua tutto va bene, successivamente le credenziali vengono manipolate nella maniera seguente :
L'username è il nome del file .txt
La password viene hashata (hash sha3 512) e scritta sul file appena creato
Per salvare le modifiche è necessario riavviare il programma (Py non crea il file finché l programma non termina a quanto pare)
Il file è creato correttamente e il digest è contenuto all'interno del file
Tutto apposto sembra
Al momento di effettuare il login sorge un problema : non so se è colpa del fatto che si tratti di un hash (dovrebbe leggerlo come stringa no?) o qualcos'altro, fatto sta che ogni volta il programma dà errore come se le credenziali fossero errate anche se ho più volte verificato che gli hash e le credenziali corrispondono
Aiuto!!
P.S. Il codice è allegato ma lo trovate anche a questo link http://repl.it/@Crazyprogrammer/consoletest3
Grazie