簡體   English   中英

從python訪問哈希的mysql密碼

[英]Access hashed mysql password from python

這似乎有些瑣碎,但我花了一些時間在Google搜索上沒有結果。 無論如何,我正在開發一個Web應用程序,我需要將“敏感”數據存儲在mysql數據庫中,然后訪問它以驗證來自python的api調用。 我不是安全專家,但是我對散列和加密有基本的了解。

我知道如何使用aes_decrypt aes_encrypt加密數據,並且我也知道如何使用mysql提供的password()函數對數據進行哈希處理。

我的第一個問題是我應該對該數據進行加密還是對其進行哈希處理? 我的第二個問題是,一旦我在mysql中使用password()函數對其進行哈希處理,就不知道如何在python中“訪問”或“使用”密碼信息。

任何幫助深表感謝。

首先,我不是python專家,我的回答只是針對一般方法。

Web應用程序中的密碼通常存儲為散列,而不是加密的,這基本上使如果您的表被盜用,某人很難獲得它們。 散列應盡可能地堅實。 請不僅僅是MD5,最好使用更安全的東西(從今天的角度來看),並對其進行適當的撒鹽處理,以最大程度地減少彩虹攻擊的風險。

我不會為此使用MySQL Password()函數。 文件說:

PASSWORD()函數由MySQL Server中的身份驗證系統使用; 您不應在自己的應用程序中使用它。 為此,請考慮使用MD5()SHA2()

如果您想使用MySQL進行哈希處理,則將保留SHA2() ,盡管不要忘記在哈希處理前先對字符串加鹽。 我的方法是使用應用程序對字符串進行哈希處理(請參閱python hashli b以供參考), 像這樣對其進行加鹽處理 ,然后將哈希存儲在數據庫中。 這樣可以避免應用程序和數據庫服務器之間的數據安全性問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM