Date: May 2025
- Part 1: https://youtu.be/IpBACxT-nQo
- Part 2: https://youtu.be/b5ujsr2Bvb4
- Eugene Aquilino – AES, UI Design
- John Michael Casila – RSA, Hashing
- Mary France San Andres – Documentation, File Support
CryptoSuite is a web-based application that demonstrates and applies modern cryptographic algorithms. Its purpose is to provide an interactive, educational platform for encrypting, decrypting, and hashing text and files. Cryptography is essential for protecting data confidentiality, integrity, and authenticity in today’s digital world, and this project aims to make these concepts accessible and practical for students and professionals.
-
Educational Demonstration:
To provide a hands-on tool for learning and understanding symmetric and asymmetric encryption, hashing, and digital signatures. -
Practical Application:
To enable users to securely encrypt, decrypt, and hash text and files using industry-standard algorithms. -
Security Awareness:
To highlight common vulnerabilities in cryptographic applications and demonstrate best practices for secure implementation.
CryptoSuite is built with a modular architecture using Python and Flask for the backend, and HTML, CSS (W3.CSS), and JavaScript for the frontend. The UI is designed to be modern, minimalist, and responsive, ensuring usability on both desktop and mobile devices.
Navigation is organized by cryptographic function: Symmetric, Asymmetric, Hashing, and Algorithm Info. Each section provides clear forms for input and displays results and error messages in a user-friendly way.
- Type: Symmetric
- Background: Standardized by NIST in 2001, AES replaced DES as the primary symmetric cipher for government and industry.
- How it works: Encrypts data in fixed-size blocks (128 bits) using keys of 128, 192, or 256 bits. Uses rounds of substitution, permutation, and mixing.
- Library: PyCryptodome (
Crypto.Cipher.AES) - Integration: Used for text and file encryption/decryption in the Symmetric section.
- Type: Symmetric
- Background: Adopted in the 1970s, DES was the first widely used symmetric cipher but is now considered insecure due to its short key length.
- How it works: Encrypts 64-bit blocks with a 56-bit key using 16 rounds of permutation and substitution.
- Library: PyCryptodome (
Crypto.Cipher.DES) - Integration: Provided for educational purposes in the Symmetric section.
- Type: Symmetric
- Background: Developed as a more secure alternative to DES by applying DES three times with different keys.
- How it works: Encrypts data by applying DES encryption, decryption, and encryption again (EDE mode).
- Library: PyCryptodome (
Crypto.Cipher.DES3) - Integration: Available for text and file encryption/decryption.
- Type: Asymmetric
- Background: Introduced in 1977, RSA is one of the first public-key cryptosystems and is widely used for secure data transmission.
- How it works: Uses a pair of keys (public/private) based on the difficulty of factoring large numbers. Supports encryption, decryption, and digital signatures.
- Library: Cryptography (
cryptography.hazmat.primitives.asymmetric.rsa) - Integration: Used for encrypting, decrypting, signing, and verifying messages in the Asymmetric section.
- Type: Asymmetric
- Background: ECC offers strong security with smaller keys, making it efficient for mobile and embedded devices.
- How it works: Uses mathematical properties of elliptic curves over finite fields for key generation, encryption, and digital signatures.
- Library: Cryptography (
cryptography.hazmat.primitives.asymmetric.ec) - Integration: Used for ECC encryption and digital signatures.
- Type: Hash
- Background: Part of the SHA-2 family, standardized by NIST. Widely used for data integrity and digital signatures.
- How it works: Produces a fixed-length hash (256 or 512 bits) from input data.
- Library: PyCryptodome (
Crypto.Hash.SHA256,Crypto.Hash.SHA512) - Integration: Used for hashing text and files in the Hashing section.
- Type: Hash
- Background: Once widely used, now considered insecure due to collision vulnerabilities.
- How it works: Produces a 128-bit hash value.
- Library: PyCryptodome (
Crypto.Hash.MD5) - Integration: Included for legacy and educational purposes.
- Type: Hash
- Background: Modern hash function designed as a faster, secure alternative to MD5 and SHA.
- How it works: Produces variable-length hashes efficiently.
- Library: PyCryptodome (
Crypto.Hash.BLAKE2b) - Integration: Available for hashing text and files.
Input:
Text: Hello World!
Key: mysecretkey12345
Algorithm: AES
Output:
U2FsdGVkX1+Q2k8k3Q==
Input:
Text: Confidential Message
Public Key: (auto-generated or user-provided)
Output:
Encrypted ciphertext (base64-encoded)
Input:
Text: password123
Output:
ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f
(Add screenshots of your UI for each section, e.g., symmetric encryption form, hashing form, output panels, etc.)

- Backend: Python, Flask
- Cryptography Libraries: PyCryptodome, Cryptography
- Frontend: HTML, CSS (W3.CSS, custom), JavaScript
- Deployment: PythonAnywhere
-
Clone the repository:
git clone https://github.com/yourusername/AC-FP-ACS.git cd AC-FP-ACS -
Create a virtual environment and activate it:
python3 -m venv venv source venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
-
Run the app:
python run.py
Then open http://localhost:5000 in your browser.
https://ACACS.pythonanywhere.com