Skip to main content

A password manager in Python that not only manages passwords but also serves as a simple encryption software.

Project description

pysswordSz

一个使用Python编写的密码管理器,除了可以管理密码之外,还可以作为一个简单的加密软件。 A password manager in Python that not only manages passwords but also serves as a simple encryption software.

为什么不适用现有的那些密码软件?因为奇怪的公司要求使用不了。保存在加密的excel里面,很多时候是有问题的,解密后会被别人看到所有信息,这反而更容易泄密。 所以只好自己来搞一个更安全一些的东西了。Why not use the existing password software? Because strange companies require alternatives. Storing passwords in an encrypted Excel file often poses problems; once decrypted, all information can be seen by others, making it more prone to leaks. Therefore, I have to create a more secure solution myself.

完全使用Python构建的密码管理器和简单加密软件,使用RSA进行加密,密码本保存在本地。这个小程序本身并不支持把密码进行云端同步,如果你确实需要云同步,则需要重新指定你的密码本保存位置,并按照自主设定云同步方案。This Password Manager and simple encryption software completely built with Python, using RSA for encryption, with the password database stored locally. This application does not support cloud synchronization of passwords. If you do require cloud synchronization, you will need to specify a new location for your password database and set up your own synchronization plan.

安装 Installation

直接使用Python Pip进行安装:

$ python -m pip install pysswordsz

或者使用pipx进行安装:

$ pipx install pysswordsz

如果你使用windows操作系统,也和我的很多同事一样,是个python苦手,那么我推荐使用我打包好的exe程序及对应的安装脚本(install.ps1)进行安装,相关说明见对应文件。安装需要把安装脚本和打包文件放在同一个文件夹下,才能正常完成安装。打包的压缩文件可以在Releases里面下载。

另外,需要特别注意的是:目前打包的exe程序在创建xkcd密码时会出错,这个问题暂时我还未解决,除此之外的功能可以正常使用。如果发现还有什么问题或者有更好的建议欢迎给我提出建议

快速开始 Quick Start

如果你只使用密码生成的功能,那么,你无需进行任何设置。 但是,如果你需要使用密码库或者进行加密操作,那必须先初始化整体功能:

$ pysswordsz init

如果你需要在其他地方保存key文件和数据文件,你需要在初始化后进行设置:

$ pysswordsz config set keyfolder '~\place\you\want'
$ pysswordsz config set datafolder '~\place\you\want'

但请注意!key文件和数据文件的保存地址需要提前创建好,再进行设置,否则会没有相关路径而使程序出错。

正常加密一个文件和解密一个文件:

$ pysswordsz crypt encr '.../your.file'
$ pysswordsz crypt decr '.../your.file.lyz'

使用密码库,首先需要建立一个库,名称可以是任意的,这里随便起了一个叫做firstVault

$ pysswordsz pass build 'firstVault'

然后就可以添加密码了:

$ pysswordsz pass add system_one

如果你有多个密码库,则添加时需要指定一个你要保存的密码库:

$ pysswordsz pass add system_two --to oneVault

当然,可以通过配置命令指定默认库,不做指定的话,最后新建的密码库就是默认的密码库,下面是指定密码库的操作:

$ pysswordsz config set vault thatVault

当你在默认密码库中保存了多个密码时,当需要查找密码时,可以如下操作:

$ pysswordsz pass search oneSystem

当然,你也可以指定列出某一个系统曾经使用过的所有密码:

$ pysswordsz pass search twoSystem --all

最后一个常用操作,就是更新一个密码:

$ pysswordsz pass update theSystem

配置 Configuration

目前支持以下可配置信息:

name info comment
keyfolder 密钥保存文件夹
datafolder 数据保存文件夹 包括密码库和加密数据列表
vault 默认密码库
vaultList 所有密码库列表 使用;隔开各密码库名称的字符串信息;可用于导入旧密码库
columns 密码库遵循的关键列名称 默认为:

使用以下命令语法管理配置信息:

$ pysswordsz config set <name> <value>
$ pysswordsz config rm <name>

数据导出与加载 Export & Loads

配置文件和密码库是可以迁移的。目前仅支持在当前是空数据时的导入,也就是简单迁移。 暂时还不支持与已有数据进行合并,所以请特别注意这一点。

导入操作:

$ pysswordsz load

导出操作:

$ pysswordsz export

依赖信息 Dependency

pysswordSz 的构建主要依赖以下关键Package:

Package Version License
pycryptodome 3.20.0 BSD 2-Clause license
typer 0.12.3 MIT License
pyperclip 1.9.0 BSD-3-Clause license
pyyaml 6.0.1 MIT License
polars 1.3.0 LICENSE

使用nuitka完成针对Windows的程序打包。

许可信息 License

pysswordSz is licensed under GPL-3.0 license.

pysswordSz Copyright (C) 2024 Sidney Zhang zly@lyzhang.me

This program comes with ABSOLUTELY NO WARRANTY; for details type show w. This is free software, and you are welcome to redistribute it under certain conditions; type show c for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysswordsz-0.2.8.tar.gz (78.8 kB view details)

Uploaded Source

Built Distribution

pysswordsz-0.2.8-py3-none-any.whl (73.5 kB view details)

Uploaded Python 3

File details

Details for the file pysswordsz-0.2.8.tar.gz.

File metadata

  • Download URL: pysswordsz-0.2.8.tar.gz
  • Upload date:
  • Size: 78.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for pysswordsz-0.2.8.tar.gz
Algorithm Hash digest
SHA256 5a637cb23ec91ac9eeaee06fdb374e660e01a16c3860c5e71ed6196f241c8884
MD5 14c48d8dbadd4a3c9ea91df00be9a540
BLAKE2b-256 88d80efeb12466be97f9a17faf21986d2750fe6a5398ffa2615bde9a3aa5eb7d

See more details on using hashes here.

File details

Details for the file pysswordsz-0.2.8-py3-none-any.whl.

File metadata

  • Download URL: pysswordsz-0.2.8-py3-none-any.whl
  • Upload date:
  • Size: 73.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for pysswordsz-0.2.8-py3-none-any.whl
Algorithm Hash digest
SHA256 9f967647a28a26e1fc060312a4512314d1d6ca2cedb59de51918c92951afe5a6
MD5 437e4b29682a9da957db301c1ffc25b8
BLAKE2b-256 d9c05cbe313429e411234d53ca4973ef126b17d54d29739345becb037f48caa0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page