A library for various cryptography algorithms (Caesar, Hill Cipher.)
Project description
Cryptography Library
A Python library for implementing and working with various classical encryption algorithms. This library provides a collection of ciphers that you can use to encrypt and decrypt data in educational or practical cryptography-related projects.
Features
This library includes the following classical ciphers:
- Caesar Cipher: A substitution cipher that shifts letters by a fixed number.
- Monoalphabetic Cipher: A substitution cipher where each character is replaced by another character using a key.
- Vigenere Cipher: A polyalphabetic substitution cipher that uses a keyword to encrypt data.
- Vernam Cipher: A stream cipher that uses a key of the same length as the plaintext for encryption.
- Playfair Cipher: A digraph substitution cipher that encrypts pairs of letters.
- Hill Cipher: A cipher based on linear algebra that uses matrix multiplication for encryption.
Installation
You can install this library using pip (after uploading it to PyPI):
pip install CryptoClasec
Usage
Here’s how to use the library in your Python project:
Import the Cipher Classes
from CryptoClasec import Caesar, Monoalphabetic, Vigenere, Vernam, Playfair, HillCipher
Example: Caesar Cipher
# Initialize the Caesar cipher with a shift value of 3
caesar = Caesar(3)
# Encrypt a plaintext
encrypted = caesar.encrypt("HELLO")
print("Encrypted text:", encrypted)
# Decrypt the ciphertext
decrypted = caesar.decrypt(encrypted)
print("Decrypted text:", decrypted)
Example: Vigenere Cipher
# Initialize the Vigenere cipher with a keyword
vigenere = Vigenere("KEY")
# Encrypt a plaintext
encrypted = vigenere.encrypt("HELLO")
print("Encrypted text:", encrypted)
# Decrypt the ciphertext
decrypted = vigenere.decrypt(encrypted)
print("Decrypted text:", decrypted)
Available Classes
1- Caesar:
caesar = Caesar(3)
caesar.encrypt(plaintext)
caesar.decrypt(ciphertext)
2- Monoalphabetic:
mono = Monoalphabetic("QWERTYUIOPLKJHGFDSAZXCVBNM")
mono.encrypt(plaintext)
mono.decrypt(ciphertext)
2- Vigenere:
vigenere = Vigenere("KEY")
vigenere.encrypt(plaintext)
vigenere.decrypt(ciphertext)
4- Vernam:
vernam = Vernam("RANDOMKEY")
vernam.encrypt(plaintext)
vernam.decrypt(ciphertext)
5- Playfair:
playfair = Playfair("KEYWORD")
playfair.encrypt(plaintext)
playfair.decrypt(ciphertext)
6- HillCipher:
hill = HillCipher([[2, 3], [1, 4]])
hill.encrypt(plaintext)
hill.decrypt(ciphertext)
License
This library is licensed under the MIT License. See the LICENSE file for more information.
Contributing
Contributions are welcome! Feel free to submit issues or pull requests to improve the library.
Author
Created by Ibrahem abo kila. For any inquiries, please contact me at ibrahemabokila@gmail.com.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cryptoclasec-1.0.0.tar.gz.
File metadata
- Download URL: cryptoclasec-1.0.0.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afd422c28916336c6531f97b830b6e0ace55e57a516a3c67b88386ab8bc9d6c3
|
|
| MD5 |
07d018d4f61dbff8781874aa569c4eac
|
|
| BLAKE2b-256 |
284536e773d0fbad8d4ec38b62b920a79da5a5108b48ad69a698f9e77c9cba18
|
File details
Details for the file CryptoClasec-1.0.0-py3-none-any.whl.
File metadata
- Download URL: CryptoClasec-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c40d93bf977218989a18edf9774f6bfc525cb338237705affcb83fd8df5a13b5
|
|
| MD5 |
41b7cd4256d153c90fd18cd2fe567303
|
|
| BLAKE2b-256 |
5a281b88fb549a1893544b46e999255558c67e21418a02636cdc72d4a63e547a
|