Python使用tkinter寫一個本地密碼管理器
詳細(xì)代碼見倉庫
github
地址:github.com/nerkeler/account
重要提示
程序默認(rèn)密碼:password
密鑰位置:./resource/aesKey
建議另存一份以作備份
修改點
- 本地密碼導(dǎo)出中文亂碼修復(fù)
- 引入日志記錄
- 優(yōu)化edge/chrome 瀏覽器導(dǎo)出適配管理
PS: 程序第一次打開關(guān)于頁面顯示不完整,如果遇到,請關(guān)閉后再打開
前言
閑來無事,看到自己有很多網(wǎng)站的賬戶密碼,有些網(wǎng)站可能打開一兩次也就忘記了,下一次在輸入賬戶密碼就想不起來,這樣很容易丟失賬號(當(dāng)然也可以保存在瀏覽器自帶的密碼管理器中),雖然市面上也有很多優(yōu)秀的賬戶密碼管理軟件,一來是這些程序大都是聯(lián)網(wǎng)運行,在提供了多端存檔的同時,也將密碼和賬戶在網(wǎng)絡(luò)上傳輸,雖然實際上很安全,但是并不是絕對的安全,二來,部分優(yōu)秀的程序都是訂閱付費機制,就想著自己干脆寫個簡單的本地的賬戶管理器,于是就有了這個小程序
先說一下優(yōu)點吧,同市面上的程序比較,一個最突出的優(yōu)點就是完全運行在本地,賬戶密碼經(jīng)過AES
加密,在邏輯上可以說是非常安全的,因為你的密碼不會暴漏在網(wǎng)絡(luò)上,本地也進行了加密處理。
當(dāng)然缺點也很明顯,一是功能不是十分完善,二是該程序使用tkinter
模塊編寫,在布局和界面展示上都顯得十分簡陋,好在基本的功能沒有問題
使用說明
1.下載解壓程序文件
2.運行account.exe
文件
3.點擊新建賬號
按鈕添加新的賬號密碼信息
4.雙擊表格中的數(shù)據(jù)進行編輯或刪除
5.點擊導(dǎo)出
按鈕驗證密鑰密碼后將數(shù)據(jù)導(dǎo)出為CSV格式文件
6.點擊導(dǎo)入
按鈕選擇CSV文件進行導(dǎo)入數(shù)據(jù)
7.可按需求導(dǎo)入并管理Chrome/Edge密碼本
瀏覽器密碼
登錄
第一次登陸密鑰彈出框被關(guān)閉時,就進入了程序的登錄界面,默認(rèn)賬戶名admin 不可修改,默認(rèn)密碼為 :password
,建議第一次登陸時修改密碼
PS: 多用戶功能尚未開發(fā),因此賬戶名鎖定不可編輯
修改密碼
在登陸界面 點擊 改密 進入修改密碼界面,新密碼要求字符數(shù)大于8位,點擊確定 按鈕即可進行密碼修改,修改成功后會提示修改成功,重新登陸,如下圖所示
chrome/edge瀏覽器密碼導(dǎo)入管理
依次點擊:
1.設(shè)置
2.自動填充
3.密碼管理器
找到如圖紅框內(nèi)容,驗證設(shè)備密碼后導(dǎo)出chrome密碼本csv文件到本地
回到程序后點擊導(dǎo)入
對應(yīng)導(dǎo)入源后選擇導(dǎo)入文件即可導(dǎo)入數(shù)據(jù),單線程導(dǎo)入較慢,請耐心等待,快捷鍵暫未適配
主頁面
主界面共分為兩個區(qū)域:
- 一個是上方的功能區(qū),提供了查詢、查看、新增、刪除(軟刪除)功能,
- 一個是下方的賬戶展示區(qū)域,默認(rèn)打開時按照列表展示所有賬戶信息
相關(guān)操作
- 下拉框提供了 賬戶編號(對應(yīng)下方序號列)、網(wǎng)站名稱(對應(yīng)下方網(wǎng)站列)、網(wǎng)站網(wǎng)址(對應(yīng)下方網(wǎng)址列)查詢條件轉(zhuǎn)換
- 文本框接受 下拉框的對應(yīng)字段,為空時默認(rèn)查詢所有
- 點擊某一項賬戶時,點擊查看/雙擊當(dāng)前項 可進入當(dāng)前賬戶查看界面,如圖所示,當(dāng)前頁面也可以更新賬戶信息
- 新增按鈕會彈出新增界面,按照規(guī)定指示填寫字段即可新增一條記錄
- 刪除按鈕 在點擊某一項賬戶時,點擊刪除,即可刪除當(dāng)前記錄(軟刪除,更改了當(dāng)前的狀態(tài))
隨機密碼
可以按照自己的需求生成相應(yīng)的密碼規(guī)則,ABC
/123
/abc
/#$&
注:在密碼長度>字符類型數(shù)的時候會補數(shù)字 如 密碼長度選30 規(guī)則選abc
會在26個字符后再補幾個數(shù)字構(gòu)成隨機字符
關(guān)于
聊勝于無,簡單說一下,詳細(xì)見程序頁面
補充說明
忘記登陸賬戶密碼時,可將account.db
文件使用數(shù)據(jù)庫可視化工具打開,取出當(dāng)前賬戶的相關(guān)信息和密碼,根據(jù)密鑰和加密邏輯解密當(dāng)前賬戶的密碼明文
加密邏輯如下:
import hashlib from Crypto.Cipher import AES ? ? def encode_password(password): key = yourkey # key 表示你的密鑰 slot = "nerkeler" encode = key + slot myKey = hashlib.md5(encode.encode("utf-8")).hexdigest().__str__()[:24] return aes_encode(myKey, password) def aes_decode(key, ciphertext): # 將密鑰填充到16的倍數(shù) key = key + (16 - len(key) % 16) * '\0' # 創(chuàng)建AES密碼器對象 cipher = AES.new(key.encode(), AES.MODE_ECB) # 解碼Base64編碼的密文 ciphertext = base64.b64decode(ciphertext) # 解密 plaintext = cipher.decrypt(ciphertext) # 去除填充字符 plaintext = plaintext.rstrip(b'\0') return plaintext.decode()
到此這篇關(guān)于Python使用tkinter寫一個本地密碼管理器的文章就介紹到這了,更多相關(guān)Python tkinter本地密碼管理器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Selenium+Python 自動化操控登錄界面實例(有簡單驗證碼圖片校驗)
今天小編就為大家分享一篇Selenium+Python 自動化操控登錄界面實例(有簡單驗證碼圖片校驗),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06