還沒有製作加密 USB 隨身碟嗎?先來做一隻:點我開始製作加密 USB 隨身碟
還沒有用 KeePass 管理密碼嗎?先來解決這個問題吧:點我開始使用 KeePass 管理密碼
在建立好 KeePass 資料庫後,我們可以透過 PyKeePass 來對資料庫檔案進行讀寫操作。
本文著重在讀取操作以及提供處理資料庫主密碼的最佳範例。
本文是在為自動化取得銀行資料鋪路。
安裝 PyKeePass
透過 Poetry 建立虛擬環境 (建議)
因為我們將 KeePass 資料庫放置於加密 USB 隨身碟中,為了讓可攜帶性提昇,建議使用 Poetry 在加密 USB 隨身碟中建立虛擬環境並且管理套件:
1 2 3 4 5 |
$ python –m pip intsall poetry # If you don’t have poetry installed $ mkdir keepass_test $ cd keepass_test $ poetry init $ poetry add pykeepass |
透過 pip 安裝
如果你理解下面這段程式碼在做什麼,再使用 pip 安裝 PyKeePass:
1 |
$ python –m pip install pykeepass —user |
使用 getpass 取得密碼
我們可以使用 getpass 這個 Python 內建模組安全的輸入密碼:
1 2 3 |
import getpass pw = getpass.getpass() |
使用 PyKeePass 操作 KeePass 密碼資料庫
開啟 KeePass 密碼資料庫
1 2 3 4 5 6 7 |
import getpass from pykeepass import PyKeePass pw = getpass.getpass() kbdx = PyKeePass(“Database.kbdx”, password=pw) |
搜尋條目以及取得密碼
1 2 3 4 5 6 7 |
>>> kbdx.find_entries(title=“Testing”) [Entry: “Testing (foobar)”] >>> kbdx.find_entries(title=“Testing”, first=True) Entry: “Testing (foobar)” >>> entry = kbdx.find_entries(title=“Testing”, first=True) >>> entry.password ‘z4cHGjQSnIP4DtPDPdWA’ |
取得先前設定的 String fields
1 2 |
>>> entry.get_custom_property(“testing_2”) ‘foobar’ |
全部整合起來
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import getpass from pykeepass import PyKeePass def open_keepass_database(database_path: str): pw = getpass.getpass() kbdx = PyKeePass(database_path, password=pw) return kbdx def main(): kbdx = open_keepass_database(“Database.kbdx”) entry = kbdx.find_entries(title=“TaishinBank”, first=True) print(entry.username, entry.password, entry.get_custom_property(“userid”)) if __name__ == “__main__”: main() |
Leave a Reply