使用 Python 实现一个简单的密码管理器,用户可以存储和管理自己的密码

以下是一个简单的基于命令行界面的密码管理器实现,使用 Python 3 和 SQLite3 数据库。

import sqlite3
import hashlib

# 创建数据库连接
conn = sqlite3.connect('passwords.db')
c = conn.cursor()

# 创建表格
c.execute('''CREATE TABLE IF NOT EXISTS passwords
             (id INTEGER PRIMARY KEY AUTOINCREMENT,
              website TEXT NOT NULL,
              username TEXT NOT NULL,
              password_hash TEXT NOT NULL)''')

# 常量
SALT = 'my-password-salt'

# 函数:计算 SHA256 哈希值
def compute_hash(password):
    m = hashlib.sha256()
    m.update(SALT.encode())
    m.update(password.encode())
    return m.hexdigest()

# 函数:添加密码
def add_password(website, username, password):
    password_hash = compute_hash(password)
    c.execute("INSERT INTO passwords (website, username, password_hash) VALUES (?, ?, ?)", (website, username, password_hash))
    conn.commit()

# 函数:获取密码
def get_password(website):
    c.execute("SELECT password_hash FROM passwords WHERE website=?", (website,))
    result = c.fetchone()
    if result:
        return result[0]
    else:
        return None

# 函数:列出所有网站名称
def list_websites():
    c.execute("SELECT website FROM passwords")
    result = c.fetchall()
    if result:
        for row in result:
            print(row[0])
    else:
        print('No passwords found.')

# 命令行界面
while True:
    command = input('Enter a command (add, get, list, or quit): ')
    if command == 'add':
        website = input('Enter the website name: ')
        username = input('Enter the username: ')
        password = input('Enter the password: ')
        add_password(website, username, password)
        print('Password added.')
    elif command == 'get':
        website = input('Enter the website name: ')
        password_hash = get_password(website)
        if password_hash:
            print('The password is:', password_hash)
        else:
            print('No password found.')
    elif command == 'list':
        list_websites()
    elif command == 'quit':
        break
    else:
        print('Invalid command.')

该密码管理器使用 SQLite3 数据库来存储密码信息,计算 SHA256 哈希值来加密密码。用户可以使用命令行界面来添加、获取和列出密码。请注意,这是一个简单的示例实现,实际应用中可能需要添加更多的特性和安全性逻辑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
【资源说明】 基于python+pyside6的密码管理器源码(含使用说明).zip 多用户使用 数据本地化管理 本地存储使用多种加密方式 开发初衷 很多小伙伴应该都有被盗号的经历吧。首先有些黑客不得不说确实非常厉害,轻轻松松就能把你的账号盗走。 但是也存在自己慢慢实在太简单了,这种密码叫做弱密码,就比如说123456这种密码。 怎么说呢,这种密码确实很容易记,不知道您清不清楚这种密码在很多爆破字典中都是第一个,也就意味着,别人只要一式就知道你的密码了。 也就被盗了。 怎么说呢,这种情况是真的存在的,虽然这种电脑软件可能没那么实用,毕竟更多人用的都是手机,但是吧! 俺不会开发APP,我不是程序员,俺只会Python。 当然有的小伙伴可能会说开发网站,小程序什么的,这个的话还真不行,虽然我可以做,但是就算做出来,我自己都不会存。因为这些都会需要在服务器中,这种要是这个服务器被黑客攻击呢!不可控因素太多了! 我们生活在这透明的世界上,虽然没有隐私可言,但是还是保护一下自己,不要再用那种弱密码了。 实现功能 准备工作 您需要准备以下东西 Python3.9 及以上版本(或自行改写旧版不兼容的语法) peewee 3.15.3 pycryptodome 3.15.0 或其等价替代 PySide6 6.3.2 部分版本需要自行修改窗口移动代码,会存在不兼容 如何使用 源码运行 执行 pip install -r requirements.txt 即可安装依赖 main.py 运行主文件 path.py 项目路径管理 login.py 用户注册登录 model.py orm数据库 Global/GlobalVariable.py 全局变量[除level外不建议修改, 一般运行请将其设置为INFO] 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A336563

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值