Skip to main content

A package to help make an encrypted password manager

Project description

passwordcrypto

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 passwordcrypto 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.

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

passwordcrypto-1.0.2.tar.gz (4.4 kB view hashes)

Uploaded Source

Built Distribution

passwordcrypto-1.0.2-py3-none-any.whl (5.2 kB view hashes)

Uploaded Python 3

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