MonoCipher is python programmed package which allow users to encrypt and decrypt messages in three different levels
- Simple Cryption with Shift number
- Byte Cryption with an advance method of encryption and decryption with Initialization Vector (IV) and Cipher Text. more on IV
- Salt Cryption with advance method of encryption and decryption with Initialization Vector (IV), Cipher Text, Password and salt. more on salt
The core module used in the project is pycryptodome
pip install MonoCipher
- This function encrypts decrypts message using shift method
- This function takes an input of message and shift number |
shift_encrypt(message, shift)
For Decrypting the message the function takes as same |shift_encrypt(message, shift)
- This encryption works in an advance method of encryption and decryption with Initialization Vector (IV) and Cipher Text. more on IV
- This function takes an input of Message and Password and returns VI and Cipher Text |
byte_encrypt(message, password)
- For Decrypting the message the function takes VI, Cipher Text, and Password |
byte_decrypt(iv, ciphertext, password)
- This encryption works in an advance method of encryption and decryption with Initialization Vector (IV), Cipher Text, Password and salt. more on salt
- This function takes an input of Message and Password and returns Salt, VI and Cipher Text |
salt_encrypt(message, password)
For Decrypting the message the function takes Salt, VI, Cipher Text, and Password |salt_decrypt(salt, iv, ciphertext, password)
- On this process the encrypt function generates a 256-bit key |
generate_key(password, salt)
Certainly! Here's the updated usage section for the README.md file:
Encrypts a message using a simple Caesar cipher with a specified shift value.
from MonoCipher.SimpleEncryption import shift_encrypt
message = "Hello, World!"
shift = 3
encrypted_message = shift_encrypt(message, shift)
print("Encrypted message:", encrypted_message)
Decrypts a message encrypted with a Caesar cipher using the same shift value.
from MonoCipher.SimpleEncryption import shift_decrypt
encrypted_message = "Khoor, Zruog!"
shift = 3
decrypted_message = shift_decrypt(encrypted_message, shift)
print("Decrypted message:", decrypted_message)
Encrypts a message using AES encryption in CBC mode with a provided key.
from MonoCipher.ByteEncryption import byte_encrypt
message = "Hello, World!"
password = "MySecretPassword"
iv, ciphertext = byte_encrypt(message, password)
print("IV:", iv)
print("Ciphertext:", ciphertext)
Decrypts a message encrypted with AES encryption using the same key and initialization vector (IV).
from MonoCipher.ByteEncryption import byte_decrypt
iv = "some_base64_encoded_iv"
ciphertext = "some_base64_encoded_ciphertext"
password = "MySecretPassword"
decrypted_message = byte_decrypt(iv, ciphertext, password)
print("Decrypted message:", decrypted_message)
Encrypts a message using AES encryption in CBC mode with a provided password and a random salt.
from MonoCipher.SaltEncryption import salt_encrypt
message = "Hello, World!"
password = "MySecretPassword"
salt, iv, ciphertext = salt_encrypt(message, password)
print("Salt:", salt)
print("IV:", iv)
print("Ciphertext:", ciphertext)
Decrypts a message encrypted with AES encryption using the same password and salt.
from MonoCipher.SaltEncryption import salt_decrypt
salt = "some_base64_encoded_salt"
iv = "some_base64_encoded_iv"
ciphertext = "some_base64_encoded_ciphertext"
password = "MySecretPassword"
decrypted_message = salt_decrypt(salt, iv, ciphertext, password)
print("Decrypted message:", decrypted_message)
Encrypts a message using HMAC authentication.
from MonoCipher.HmacEncryption import hmac_encrypt
message = "Hello, World!"
password = "MySecretPassword"
salt, nonce, ciphertext, tag = hmac_encrypt(message, password)
print("Salt:", salt)
print("Nonce:", nonce)
print("Ciphertext:", ciphertext)
print("Tag:", tag)
Decrypts a message encrypted with HMAC authentication using the same parameters.
from MonoCipher.HmacEncryption import hmac_decrypt
salt = "some_base64_encoded_salt"
nonce = "some_base64_encoded_nonce"
ciphertext = "some_base64_encoded_ciphertext"
tag = "some_base64_encoded_tag"
password = "MySecretPassword"
decrypted_message = hmac_decrypt(salt, nonce, ciphertext, tag, password)
print("Decrypted message:", decrypted_message)
Encrypts a message using a nonce for authentication.
from MonoCipher.NonceEncryption import nonce_encrypt
message = "Hello, World!"
password = "MySecretPassword"
salt, nonce, ciphertext, tag = nonce_encrypt(message, password)
print("Salt:", salt)
print("Nonce:", nonce)
print("Ciphertext:", ciphertext)
print("Tag:", tag)
Decrypts a message encrypted with a nonce for authentication using the same parameters.
from MonoCipher.NonceEncryption import nonce_decrypt
salt = "some_base64_encoded_salt"
nonce = "some_base64_encoded_nonce"
ciphertext = "some_base64_encoded_ciphertext"
tag = "some_base64_encoded_tag"
password = "MySecretPassword"
decrypted_message = nonce_decrypt(salt, nonce, ciphertext, tag, password)
print("Decrypted message:", decrypted_message)
Encrypts a message using AES-GCM with a provided password.
from MonoCipher.MacEncryption import mac_encrypt
password = "MySecretPassword"
message = "Hello, World!"
salt, nonce, ciphertext, tag = mac_encrypt(message, password)
print("Salt:", salt)
print("Nonce:", nonce)
print("Ciphertext:", ciphertext)
print("Tag:", tag)
Decrypts a message encrypted with AES-GCM using the same parameters.
from MonoCipher.MacEncryption import mac_decrypt
salt = "some_base64_encoded_salt"
nonce = "some_base64_encoded_nonce"
ciphertext = "some_base64_encoded_ciphertext"
tag = "some_base64_encoded_tag"
password = "MySecretPassword"
decrypted_message = mac_decrypt(salt, nonce, ciphertext, tag, password)
print("Decrypted message:", decrypted_message)
These are the usages for each of the six functions provided by the encryption modules. You can customize the input values such as the message, shift value, password, IV, and ciphertext according to your requirements.
MonoCipher CLI is a command-line tool for performing various cryptographic operations such as encryption, decryption, and hashing. It offers a user-friendly interface and supports multiple encryption algorithms.
- Encryption and decryption using symmetric and asymmetric encryption algorithms
- Hashing data with different hash functions
- Command-line interface for easy interaction
- Progress bar during updates
- Seamless integration with pip for package updates
You can install MonoCipher CLI via pip:
pip install MonoCipher==0.1.4b0
After installing MonoCipher CLI, you can use it from the command line. Here are some examples of how to use it:
- Shift Encryption:
MonoCipher shiftencrypt --message "Hello, World!" --shift 3
- Shift Decryption:
MonoCipher shiftdecrypt --encrypted-message "Khoor, Zruog!" --shift 3
- Byte Encryption:
MonoCipher byteencrypt --message "Hello, World!" --password "MySecretPassword"
- Byte Decryption:
MonoCipher bytedecrypt --iv "iv_value" --ciphertext "ciphertext_value" --password "MySecretPassword"
- Salt Encryption:
MonoCipher saltencrypt --message "Hello, World!" --password "MySecretPassword"
- Salt Decryption:
MonoCipher saltdecrypt --salt "salt_value" --iv "iv_value" --ciphertext "ciphertext_value" --password "MySecretPassword"
- HMAC Encryption:
MonoCipher hmacencrypt --message "Hello, World!" --password "MySecretPassword"
- HMAC Decryption:
MonoCipher hmacdecrypt --salt "salt_value" --iv "iv_value" --ciphertext "ciphertext_value" --hmac "hmac_value" --password "MySecretPassword"
- MAC Encryption:
MonoCipher macencrypt --message "Hello, World!" --password "MySecretPassword"
- MAC Decryption:
MonoCipher macdecrypt --salt "salt_value" --nonce "nonce_value" --ciphertext "ciphertext_value" --tag "tag_value" --password "MySecretPassword"
- Nonce Encryption:
MonoCipher nonceencrypt --message "Hello, World!" --password "MySecretPassword"
- Nonce Decryption:
MonoCipher noncedecrypt --salt "salt_value" --nonce "nonce_value" --ciphertext "ciphertext_value" --tag "tag_value" --password "MySecretPassword"
For more detailed usage information, you can run:
MonoCipher --help
You can update MonoCipher CLI to the latest version using the following command:
MonoCipher update
This command will upgrade MonoCipher CLI to the latest version. It also includes a progress bar to track the update progress.
We welcome contributions from the community to enhance and improve our encryption project. Whether you're interested in adding new features, fixing bugs, improving documentation, or suggesting ideas, your contributions are highly appreciated.
Author : Rakesh Kanna
E-Mail : rakeshkanna0108@gmail.com
Version : v0.1.4 beta
Repository : https://github.com/rakeshkanna-rk/MonoCipher
PyPI : https://pypi.org/project/MonoCipher/