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


📦 Installation

You can install Bcryptify directly from PyPI with pip:

pip install bcryptify

Bcryptify library dependent on the cryptography library

pip install cryptography

🚀 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'

tag = b"\xcd_\x8d\xfd1E\xd4"

# 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, tag)
    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, tag)
    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 = "l.png"

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, tag)
#print(f"Encrypted message : {encrypted_message}")

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

support

  • RSA
  • AES GCM

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.1.1.tar.gz (5.6 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.1.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for bcryptify-1.1.1.tar.gz
Algorithm Hash digest
SHA256 66de42f3e14b5fd9e67dc0159ace2cdade03d0568419e1c8c1e95007ecd896dc
MD5 eb92f1c41583f871077d4cdbb4477a2f
BLAKE2b-256 9d0a0e63e94df1ce01b03171c99f86606a9173bbb852b363f7b66e6f6fa1b929

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bcryptify-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 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.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 196023d362ccf77e43f972ccbe355568816061d9450429e7786dbbb8b9bcfa89
MD5 0a0cc1f614824afb4473ca0cd37ec851
BLAKE2b-256 59ba1bca57ce0724ca965bed5a1a925abfa9df33f12c219605c80e2f361e44c8

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