passwd-crypto
This Python module provides a simple password manager for securely storing and retrieving encrypted password entries. The passwords are encrypted using the Fernet symmetric encryption scheme. The module includes functionality to derive a Fernet key from a password, initialize a password manager instance, retrieve encrypted passwords, decrypt and read stored passwords, encrypt text, and write new password entries to a file.
Usage
Initialization
from passwd-crypto import Passwd, generate_key_from_password
# Example usage
password = b'MyStrongPassword'
key = generate_key_from_password(password)
filename = 'passwords.txt'
# Initialize a Passwd instance
password_manager = Passwd(filename, key)
Reading Passwords
# Retrieve encrypted passwords from the file
encrypted_passwords = password_manager.getEncryptedPasswds()
# Decrypt and read stored passwords
password_entries = password_manager.read()
Writing Passwords
# Write a new password entry to the file
app_name = 'MyApp'
email_address = 'user@example.com'
user_password = 'SecurePassword123'
password_manager.write(app_name, email_address, user_password)
API Reference
generate_key_from_password(password: bytes) -> Fernet
Generates a Fernet key derived from the provided password.
class Passwd(filename: str, key: bytes) -> None
Initialize a Passwd instance.
filename (str): The name of the file to store encrypted passwords.key (bytes): The Fernet key used for encryption and decryption.
getEncryptedPasswds() -> list[bytes]
Retrieve encrypted passwords from the file.
read() -> list[list[str]]
Decrypt and read stored passwords from the file. Returns a list of decrypted password entries, where each entry is a list with the format [App, Email, Password].
encrypt(text: str) -> bytes
Encrypt the given text using the Fernet key.
text (str): The text to be encrypted.
write(app: str, email: str, password: str) -> None
Encrypt and write a new password entry to the file.
app (str): The application or service name.email (str): The associated email address.password (str): The password for the application or service.
Security Note
Adjust the number of iterations in the key derivation process (iterations parameter in generate_key_from_password) based on your security requirements. Higher iterations increase security but also result in longer key derivation times.
Release files for passwd-crypto 0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| passwd-crypto-0.1.tar.gz | 3.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| passwd_crypto-0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 5.9 kB
Release files / passwd-crypto-0.1.tar.gz
| Download URL | passwd-crypto-0.1.tar.gz |
|---|---|
| Size | 3.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e4ed4dfe3f5126f91e218b25f100b7d7f49f2039d798861550fc607852651635
|
|
BLAKE2b-256 checksum How to use checksums |
0fcf8178db0b6bacc558cee0cce2ff12a2c63e39faef61cd9c7d40b74de21263
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.10.6
|
Release files / passwd_crypto-0.1-py3-none-any.whl
| Download URL | passwd_crypto-0.1-py3-none-any.whl |
|---|---|
| Size | 2.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8114a922691505aca61e456ac7a93e3cd3d873b2a8b09b4c0669cd51bf2649be
|
|
BLAKE2b-256 checksum How to use checksums |
c7e9ea42bcfffb81b8cd297edaafef1572cd5b7e4b1a9cddca474bc328cfd0bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.10.6
|