Skip to main content

Bcryptify is a modern and elegant Python library designed to simplify the use of cryptographic algorithms, while adhering to SOLID principles to ensure clean, extensible, and maintainable code.

Project description

Bcryptify

Bcryptify est une bibliothèque Python moderne et élégante conçue pour simplifier l'utilisation des algorithmes de chiffrement, tout en respectant les principes SOLID pour garantir un code propre, extensible et maintenable.


📦 Installation

You can install Bcryptify directly from PyPI with pip:

pip install bcryptify

🚀 Use

Here is a simple example of using the AesGcmCipher class to encrypt and decrypt messages or files.

import os
from Bcryptify.aes_gcm import AesGcmCipher

# 256-bit AES key (must be kept secret)
key = b'\xcd_\x8d\xfd1E\xd4\xe3uj\xee_\x1dj\x9c\x07\xa3\x13\x95\x96\x10\xa6\xf3\rb\xc0\x08\xde\xfa\xb6\x99\xc9'

# Initializing the AES-GCM cipher
aes_gcm = AesGcmCipher(key)


# --- Example of file encryption/decryption ---

def read_file(filename: str) -> bytes:
    with open(filename, "rb") as f:
        return f.read()

def write_file(filename: str, data: bytes) -> None:
    with open(filename, "wb") as f:
        f.write(data)

def encrypt_file(filepath: str) -> None:
    if not os.path.isfile(filepath):
        raise FileNotFoundError(f"The file {filepath} does not exist.")
    data = read_file(filepath)
    encrypted = aes_gcm.encrypt(data)
    encrypted_filepath = filepath + ".lock"
    write_file(encrypted_filepath, encrypted)
    os.remove(filepath) 
    print(f"File encrypted in {encrypted_filepath} and original file deleted.")

def decrypt_file(encrypted_filepath: str) -> None:
    if not encrypted_filepath.endswith(".lock"):
        raise ValueError("The decrypted file must have the extension '.lock'.")
    if not os.path.isfile(encrypted_filepath):
        raise FileNotFoundError(f"The file {encrypted_filepath} does not exist.")
    data = read_file(encrypted_filepath)
    decrypted = aes_gcm.decrypt(data)
    original_filepath = encrypted_filepath[:-5] 
    write_file(original_filepath, decrypted)
    os.remove(encrypted_filepath)
    print(f"Decrypted file in {original_filepath} and encrypted file deleted.")

# Example of use
file_path = "chap 12.pdf"

encrypt_file(file_path)
decrypt_file(file_path + ".lock")


# ----------------------------------------


# Encrypting a text message
#message = "Hello, this is a secret message.".encode('utf-8')
#encrypted_message = aes_gcm.encrypt(message)
#print(f"Encrypted message : {encrypted_message}")

# Decrypting the message
#decrypted_message = aes_gcm.decrypt(encrypted_message)
#print(f"Deciphered message : {decrypted_message.decode('utf-8')}")

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

bcryptify-1.0.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bcryptify-1.0.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file bcryptify-1.0.0.tar.gz.

File metadata

  • Download URL: bcryptify-1.0.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for bcryptify-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d999891475d7c43df4255b6379d9618ad6d1a365151ffe1d756a0b34a5420bdd
MD5 81027cd17ac73b49cb09b96ddae72a8c
BLAKE2b-256 23b449f01f30ea62a879353ee36e161daf8095dba8baf22acc71115c820b63f6

See more details on using hashes here.

File details

Details for the file bcryptify-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: bcryptify-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for bcryptify-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 60bec0af83358508fb23e6fc83977966ddbfb7c805b35c20d1a9c2e322a550e6
MD5 7ce3e7df787c4df81146925e63b15949
BLAKE2b-256 bc45efd91f65ce4505e655eebdb6b394b8738af036007a05c108fbb2bf5b1d1d

See more details on using hashes here.

Supported by

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