Encryption App - Copy this React, Tailwind Component to your project
"Create a web application with the following structure and requirements: Main Application Layout: Title: 'Encryption and Security Application' Responsive layout with a navigation bar containing five sections: Section 1: 'Basic Algorithms' Section 2: 'Symmetric Encryption' Section 3: 'Asymmetric Encryption' Section 4: 'Hash' Section 5: 'Digital Signature' Section 1: Basic Algorithms Components: Text area labeled "Input Text" for user input Button labeled "Shift Characters" to shift each character by +1 in the input text and display in the output area Text area labeled "Output Text" for displaying the shifted text Section 2: Symmetric Encryption Components: Options to select between "Text" and "File" encryption modes Text Mode: Text area labeled "Input Text" for user text input Input field to enter a key or generate a new key Dropdowns for selecting encryption mode (e.g., CBC, ECB) and padding type (e.g., PKCS5Padding) Buttons labeled "Encrypt" and "Decrypt" to process the input text Text area labeled "Output Text" for displaying the encrypted or decrypted text Button labeled "Save Key" for downloading the key File Mode: File upload component for uploading a file to encrypt or decrypt Input field for entering or generating a key Dropdowns for encryption mode and padding type Buttons labeled "Encrypt File" and "Decrypt File" to process the file and download the result Button labeled "Save Key" for downloading the key Section 3: Asymmetric Encryption Components: Options to select between "Text" and "File" encryption modes Text Mode: Text area labeled "Input Text" for short text input Input fields to enter or generate a key pair Buttons labeled "Encrypt" and "Decrypt" for text encryption and decryption using the public/private keys Text area labeled "Output Text" for displaying the result Button labeled "Save Keys" to download the key pair File Mode: File upload component for uploading a file to encrypt or decrypt Input fields to enter or generate a key pair Buttons labeled "Encrypt File" and "Decrypt File" to process and download the file Button labeled "Save Keys" for downloading the key pair Section 4: Hash Components: Options to select between "Text" and "File" hash modes Text Mode: Text area labeled "Input Text" for user text input Button labeled "Generate Hash" to calculate the hash (e.g., SHA-256) of the text Text area labeled "Output Text" for displaying the hash result File Mode: File upload component to select a file for hashing Button labeled "Generate File Hash" to calculate the hash of the uploaded file Text area labeled "Output Hash" for displaying the hash result Section 5: Digital Signature Components: Options to select between "Text" and "File" signature modes Text Mode: Text area labeled "Input Text" for text to sign Input fields for entering or generating a key pair Buttons labeled "Sign" and "Verify Signature" for digital signing and verification Text area labeled "Signature Output" for displaying the signature Button labeled "Save Keys" to download the generated keys File Mode: File upload component to select a file for signing Input fields for entering or generating a key pair Buttons labeled "Sign File" and "Verify File Signature" for signing and verifying the file Text area labeled "Signature Output" for displaying the result Button labeled "Save Keys" for downloading the generated keys Ensure the interface is user-friendly, and each section is accessible via the navigation bar. Use JavaScript for basic operations and back-end APIs for secure encryption, decryption, key generation, signing, and verification of both text and files."
