Web Development  

Design a Encrypt and decrypt text file in Tailwind CSS

Introduction

This project aims to create a secure and user-friendly web-based application for encrypting and decrypting text files and messages. The tool allows users to enter plain text into a text area or upload text-based files, then perform encryption or decryption operations through dedicated action buttons.

This Encrypt and Decrypt Text File project is useful for beginners who want to learn web development using HTML, CSS, and JavaScript. It also helps developers understand how text processing, user input handling, and basic encryption concepts work in real-world web applications.

The system includes multiple functional components such as text input handling, encryption algorithms, decryption processing, file upload and download support, and responsive user interface elements. Users can type or paste content directly into the application, select the desired operation, and instantly view the processed output in a separate display area. A clear/reset button is also provided to quickly remove all existing content from both the input and output sections.

Final Output Preview

av1

Prerequisites / Technologies Used

This project is built using modern frontend web technologies. These technologies help create a responsive, interactive, and beginner-friendly web application.

  • HTML

  • CSS (Tailwind CSS)

  • JavaScript

HTML

HTML is used to create the structure of the web application. It defines elements such as text areas, buttons, containers, and output sections.

CSS (Tailwind CSS)

Tailwind CSS is used to style the application. It helps create a clean and responsive user interface with modern design components.

JavaScript

JavaScript is responsible for the application functionality. It handles encryption, decryption, validation, button actions, and dynamic output updates.

Approach / Functionalities

The Encrypt and Decrypt Text File application works by taking user input from a text area and processing it using JavaScript functions. The application provides multiple features that improve usability and make the project interactive.

Encryption Functionality

The application provides an encryption function that reverses the input text.

When the user enters text and clicks the Encrypt button, the JavaScript function reads the input text and reverses all characters using built-in string methods.

For example:

Input: Hello World

Encrypted Output: dlroW olleH

This functionality demonstrates how basic text encryption logic can be implemented in a JavaScript web application.

Decryption Functionality

Similarly, the decryption function reverses the reversed text to restore it to its original form.

When the user clicks the Decrypt button, the application processes the encrypted text and converts it back into readable format.

For example:

Encrypted Input: dlroW olleH

Decrypted Output: Hello World

This helps users understand the relationship between encryption and decryption operations in secure web applications.

Clear Functionality

A clear button clears both the input and output areas.

This functionality improves user experience by allowing users to quickly remove all existing text and start with a fresh input.

Empty Input Alert

If the input text area is empty when the user tries to encrypt or decrypt, the application displays an alert message prompting the user to enter text.

This validation prevents unnecessary processing and improves the overall usability of the application.

For example:

Alert Message: Input text is empty!

Advantages of the Project

  • Beginner-friendly JavaScript project for learning frontend development.

  • Simple and clean responsive user interface using Tailwind CSS.

  • Demonstrates basic encryption and decryption concepts.

  • Provides instant text processing output.

  • Helps understand DOM manipulation in JavaScript.

  • Includes input validation for better user experience.

  • Easy to customize and extend with advanced encryption algorithms.

  • Useful for students learning web development projects using HTML, CSS, and JavaScript.

Disadvantages of the Project

  • The encryption method used is very basic and not secure for real-world sensitive data.

  • Does not use advanced cryptographic algorithms.

  • File upload and download functionality can be further improved.

  • No database integration for storing encrypted files.

  • Limited to text-based encryption and decryption.

Example

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>The Encrypt and Decrypt Text File</title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/tailwind.min.css" rel="stylesheet">
</head>
<body class="bg-gray-100 h-screen flex flex-col items-center justify-center">
    <div class="max-w-md w-full bg-white p-8 rounded-md shadow-md border border-green-500">
        <h1 class="text-2xl font-bold text-center text-gray-800 mb-4">Encrypt and Decrypt Text File</h1>
        <textarea id="inputText" class="w-full h-40 p-4 border border-gray-300 rounded-md resize-none focus:outline-none focus:ring focus:ring-blue-400 mb-4" placeholder="Enter text to encrypt or decrypt"></textarea>
        <div class="flex justify-center space-x-4">
            <button onclick="encryptText()" class="px-6 py-3 bg-blue-500 text-white rounded-md hover:bg-blue-600 focus:outline-none focus:ring focus:ring-blue-400">Encrypt</button>
            <button onclick="decryptText()" class="px-6 py-3 bg-green-500 text-white rounded-md hover:bg-green-600 focus:outline-none focus:ring focus:ring-green-400">Decrypt</button>
            <button onclick="clearText()" class="px-6 py-3 bg-gray-500 text-white rounded-md hover:bg-gray-600 focus:outline-none focus:ring focus:ring-gray-400">Clear</button>
        </div>
        <div id="output" class="mt-4 p-4 border border-gray-300 rounded-md"></div>
    </div>
    <script>
        function encryptText() {
            const inputText = document.getElementById('inputText').value;
            if (!inputText.trim()) {
                alert('Input text is empty!');
                return;
            }
            const encryptedText = inputText.split('').reverse().join('');
            document.getElementById('output').innerText = 'Encrypted Text: ' + encryptedText;
        }
        function decryptText() {
            const inputText = document.getElementById('inputText').value;
            if (!inputText.trim()) {
                alert('Input text is empty!');
                return;
            }           
            const decryptedText = inputText.split('').reverse().reverse().join('');
            document.getElementById('output').innerText = 'Decrypted Text: ' + decryptedText;
        }
        function clearText() {
            document.getElementById('inputText').value = '';
            document.getElementById('output').innerText = '';
        }
    </script>
</body>
</html>
av1

Summary

The Encrypt and Decrypt Text File project is a beginner-friendly web development project built using HTML, Tailwind CSS, and JavaScript. It demonstrates how text encryption and decryption work in a simple web application while also teaching important frontend concepts such as DOM manipulation, user input validation, responsive UI design, and event handling. This project is useful for students and developers who want to learn JavaScript projects, text processing applications, and basic cybersecurity concepts through practical implementation.