2017-04-01 116 views
0

你好,我正在尋找一些幫助。所以對於一些背景,這些代碼將被用作登錄系統供個人使用。我試圖讓它檢查只有一行,所以我可以得到它來驗證用戶名是正確的,或密碼。我將如何做到這一點?我怎樣才能讓我的代碼在文本文件中測試一行?

user = input("please Enter your full name: ") 
if os.path.isfile(user + ".txt"): 
    with open(user + ".txt", "r") 

     print("------------------------") 
     Username = input("|Username: ") 
     password = getpass.getpass("|Password: ") 
     print("------------------------") 

回答

0

好吧,如果你堅持在那麼不安全的方式我想這樣做你剛剛用它明文用戶名和密碼的文件。我明白,也許你對Python很熟悉,所以一種不安全的方法在某種程度上可以接受:P。下面的例子,

波什

密碼

(文件中會有線之間沒有間隙,如上圖所示,他們將在連續線)

如果沒有,那麼我建議你做這是因爲這是下面的代碼部分將如何預期的。

submittedUsername = input("Please enter username: ") 
submittedPassword = input("Please enter password: ") 
credentialsFile = open("credentials.txt", "r") 
credentials = credentialsFile.readlines() 
username = credentials[0].rstrip("\n\r") 
password = credentials[1].rstrip("\n\r") 
if submittedUsername == username: 
    if submittedPassword == password: 
     print("Login verified!") 
     #both username and password verified here, do what you want 
    else: 
     #password incorrect 
     print("Login invalid") 
else: 
    #username incorrect but whether you want to specify what is wrong is up to you 
    print("Login invalid") 

如果您想要解釋任何部分,請問。希望有所幫助。

+0

非常感謝您的幫助。我明白這是不安全的,你可以把我連接到任何地方,這將解釋我可以如何使一個更安全的版本隱藏憑據等 –

+0

我的榮幸。是的,我很害怕,但聽到你想改善它真是太好了。如果你願意,我會考慮使用hashlib SHA-512對密碼進行哈希處理。你可能想先看看這裏http://pythoncentral.io/hashing-strings-with-python/我會說看看SHA 512,因爲其他一些不再被認爲是安全的。祝你好運。 :) P.S,請提出答案並將其標記爲已接受。 – BoshJailey