2017-06-03 35 views
0

目前我的數據庫存儲的「密碼」文本,但這說,如下圖所示(該密碼也被轉換成MD5哈希值),這是行不通的:商店MD5散列SQLITE3數據庫蟒蛇

密碼「功能「:

user_in = input("Please enter a password next to this text: \n") 
Password = hashlib.md5() 
Password.update(user_in.encode("utf-8")) 

錯誤消息:

sqlite3.InterfaceError: Error binding parameter 1 - probably unsupported type. 

我想知道的是我怎麼哈希存儲在數據庫中SQLITE3

編輯:

cursor=db.cursor() 
sql="insert into Accounts (Username, Password) values(?,?)" 
cursor.execute(sql, (Username, Password))      
db.commit() 

編輯2:

user_in = input("Please enter a password next to this text: \n") 
Password = hashlib.md5() 
Password.update(user_in.encode("utf-8")) 
Password.hexdigest() 
+0

你運行Python函數時收到錯誤,或者實際上它提交到SQLServer的呢? – Polymer

+0

@Polymer再次嗨。我在輸入用戶名和密碼後收到錯誤,所以當它提交給SQL服務器時 – Josh

+0

您可以添加您用來提交給服務器的代碼嗎?在你的服務器上,你的密碼是什麼類型? – Polymer

回答

1

確保論據cursor.execute功能實際上是字符串,你會生金! :)

cursor.execute(sql, (str(Username), str(Password))) 

這是由參數中鑄造他們通過

+0

嗨聚合物,我知道這有點無關,但我想問一個問題。如果我想添加登錄功能,我將如何檢查用戶名和密碼是否相關? – Josh

+0

我知道我將不得不將用戶的猜測改爲MD5以便與數據庫中的相對應,但我將如何查看以確保它是該用戶的密碼。 – Josh

+0

如何查看用戶名是否在數據庫中,然後查看密碼是否正確 – Josh