我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python使用tkinter写一个本地密码管理器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python使用tkinter写一个本地密码管理器

详细代码见仓库

github地址:github.com/nerkeler/account

重要提示

程序默认密码:password

密钥位置:./resource/aesKey 建议另存一份以作备份

修改点

  • 本地密码导出中文乱码修复
  • 引入日志记录
  • 优化edge/chrome 浏览器导出适配管理

PS: 程序第一次打开关于页面显示不完整,如果遇到,请关闭后再打开

前言

闲来无事,看到自己有很多网站的账户密码,有些网站可能打开一两次也就忘记了,下一次在输入账户密码就想不起来,这样很容易丢失账号(当然也可以保存在浏览器自带的密码管理器中),虽然市面上也有很多优秀的账户密码管理软件,一来是这些程序大都是联网运行,在提供了多端存档的同时,也将密码和账户在网络上传输,虽然实际上很安全,但是并不是绝对的安全,二来,部分优秀的程序都是订阅付费机制,就想着自己干脆写个简单的本地的账户管理器,于是就有了这个小程序

先说一下优点吧,同市面上的程序比较,一个最突出的优点就是完全运行在本地,账户密码经过AES加密,在逻辑上可以说是非常安全的,因为你的密码不会暴漏在网络上,本地也进行了加密处理。

当然缺点也很明显,一是功能不是十分完善,二是该程序使用tkinter 模块编写,在布局和界面展示上都显得十分简陋,好在基本的功能没有问题

使用说明

1.下载解压程序文件

2.运行account.exe文件

3.点击新建账号按钮添加新的账号密码信息

4.双击表格中的数据进行编辑或删除

5.点击导出按钮验证密钥密码后将数据导出为CSV格式文件

6.点击导入按钮选择CSV文件进行导入数据

7.可按需求导入并管理Chrome/Edge密码本浏览器密码

登录

第一次登陆密钥弹出框被关闭时,就进入了程序的登录界面,默认账户名admin 不可修改,默认密码为 :password,建议第一次登陆时修改密码

PS: 多用户功能尚未开发,因此账户名锁定不可编辑

修改密码

在登陆界面 点击 改密 进入修改密码界面,新密码要求字符数大于8位,点击确定 按钮即可进行密码修改,修改成功后会提示修改成功,重新登陆,如下图所示

chrome/edge浏览器密码导入管理

依次点击:

1.设置

2.自动填充

3.密码管理器

找到如图红框内容,验证设备密码后导出chrome密码本csv文件到本地

回到程序后点击导入

对应导入源后选择导入文件即可导入数据,单线程导入较慢,请耐心等待,快捷键暂未适配

主页面

主界面共分为两个区域:

  • 一个是上方的功能区,提供了查询、查看、新增、删除(软删除)功能,
  • 一个是下方的账户展示区域,默认打开时按照列表展示所有账户信息

相关操作

  • 下拉框提供了 账户编号(对应下方序号列)、网站名称(对应下方网站列)、网站网址(对应下方网址列)查询条件转换
  • 文本框接受 下拉框的对应字段,为空时默认查询所有
  • 点击某一项账户时,点击查看/双击当前项 可进入当前账户查看界面,如图所示,当前页面也可以更新账户信息
  • 新增按钮会弹出新增界面,按照规定指示填写字段即可新增一条记录
  • 删除按钮 在点击某一项账户时,点击删除,即可删除当前记录(软删除,更改了当前的状态)

随机密码

可以按照自己的需求生成相应的密码规则,ABC/123/abc/#$&

注:在密码长度>字符类型数的时候会补数字 如 密码长度选30 规则选abc 会在26个字符后再补几个数字构成随机字符

关于

聊胜于无,简单说一下,详细见程序页面

补充说明

忘记登陆账户密码时,可将account.db 文件使用数据库可视化工具打开,取出当前账户的相关信息和密码,根据密钥和加密逻辑解密当前账户的密码明文

加密逻辑如下:

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的倍数
    key = key + (16 - len(key) % 16) * '\0'
    # 创建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()

到此这篇关于Python使用tkinter写一个本地密码管理器的文章就介绍到这了,更多相关Python tkinter本地密码管理器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python使用tkinter写一个本地密码管理器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python使用tkinter写一个本地密码管理器

闲来无事,看到自己有很多网站的账户密码,有些网站可能打开一两次也就忘记了,下一次在输入账户密码就想不起来,这样很容易丢失账号。所以本文就来用Python和tkinter写一个本地密码管理器吧
2023-05-19

使用python怎么编写一个本地应用搜索工具

这篇文章主要介绍了使用python怎么编写一个本地应用搜索工具,此处通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考价值,需要的朋友可以参考下:python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyt
2023-06-06

使用SpringBoot项目实现一个本地事务管理功能

使用SpringBoot项目实现一个本地事务管理功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. SpringBoot 事务一直在用 SpringBoot 中的 @Tra
2023-06-06

使用python编写一个学生通讯录管理系统

本篇文章为大家展示了使用python编写一个学生通讯录管理系统,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。功能模块分析:1.首页(菜单功能)2.添加学生3.删除学生4.修改学生5.统计通讯录联系人
2023-06-06

使用Django怎么实现一个账号密码管理系统

这期内容当中小编将会给大家带来有关使用Django怎么实现一个账号密码管理系统,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、环境搭建需安装:python3.6Pycharm专业版django 2.2.
2023-06-14

云服务器调用本地摄像头怎么设置权限管理密码

如果您要在云服务器上访问您本地的摄像头,您需要设置访问权限管理密码。以下是一般的方法:登录到云服务器,选择“我的账户”,选择“安全”选项卡。在“安全”选项卡中,选择“管理员访问权限”。在“设置访问权限管理密码”中,输入一个包含数字或字母组成的密码,如下所示:"12345""guest"点击“确定”即可保存设置。如果您需要在服
2023-10-27

使用Python编写一个最基础的代码解释器的要点解析

一直以来都对编译器和解析器有着很大的兴趣,也很清楚一个编译器的概念和整体的框架,但是对于细节部分却不是很了解。我们编写的程序源代码实际上就是一串字符序列,编译器或者解释器可以直接理解并执行这个字符序列,这看起来实在是太奇妙了。本文会用Pyt
2022-06-04

使用Python编写并实现一个具备人工智能的聊天机器人(包含代码和步骤)

聊天机器人是一种人工智能,它通过应用程序或消息来模拟与用户的对话。本文我们将使用Pytho的chatterbot库来实现聊天机器人。该库生成对用户输入的自动响应。响应基于库中实现的机器学习算法。机器学习算法使聊天机器人在收集用户响应时更容
使用Python编写并实现一个具备人工智能的聊天机器人(包含代码和步骤)
2024-01-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录