# Hash Generator - Generador de Hashes

## 📋 Descripción

Aplicación web para generar hashes criptográficos de texto o archivos de forma segura, con soporte para múltiples algoritmos y funciones de accesibilidad integradas.

## ✨ Características principales

- **Múltiples algoritmos**: MD5, SHA-1, SHA-256, SHA-512 y SHA3-256
- **Dos modos de entrada**: texto plano o archivos (hasta 2GB)
- **Codificación**: soporte UTF-8 y ASCII con saneamiento automático
- **Operaciones cancelables**: permite interrumpir procesos largos
- **Exportación**: guarda los hashes en TXT, JSON o Base64
- **Comparador**: verifica coincidencias entre hashes
- **Historial**: guarda los últimos 5 hashes generados
- **Mayúsculas/minúsculas**: toggle visual para el hash resultante

## ♿ Accesibilidad (UDL)

La aplicación incluye una barra de accesibilidad que permite:

- 🌙 **Modo claro/oscuro** con persistencia
- A+ / A- **Ajuste de tamaño de fuente** (12px-32px)
- 🔤 **Espaciado amplio** para facilitar lectura (modo dislexia)
- 🎚️ **Modos de contraste**: Normal / Alto / Blanco y negro
- 👁️ **Modo foco**: resalta cuadros de texto y reduce distracciones
- ↻ **Reset total** de todas las configuraciones

## 🛠️ Tecnologías utilizadas

- HTML5 / CSS3
- JavaScript (ES6+)
- [CryptoJS](https://cdnjs.com/libraries/crypto-js) para algoritmos MD5, SHA-1 y SHA3-256
- Web Crypto API para SHA-256 y SHA-512
- FileReader API para procesamiento de archivos

## 📦 Estructura del proyecto

hash-generator/
├── hash-generator.html # Aplicación principal
├── README.md # Este archivo
└── LICENSE # Licencia EUPL

## 🚀 Uso

1. Abre `hash-generator.html` en cualquier navegador moderno
2. Selecciona el modo: **Texto** o **Archivo**
3. Elige el algoritmo deseado
4. Introduce el texto o selecciona un archivo
5. Haz clic en **Generar Hash**
6. Copia, exporta o compara el resultado

## ⚠️ Notas importantes

- Todo el procesamiento es **client-side**: los datos no salen de tu dispositivo
- Archivos grandes se procesan por fragmentos para evitar bloqueos
- En modo ASCII, los caracteres no estándar se reemplazan por `?`
- El historial se guarda en localStorage (hasta 5 entradas)

## 📄 Licencia

Este proyecto se distribuye bajo la **European Union Public License (EUPL) v1.2**.

Copyright © 2026 Jorge Nieto Ortiz

Consulta el texto completo de la licencia en: [https://joinup.ec.europa.eu/collection/eupl](https://joinup.ec.europa.eu/collection/eupl)

## 🔧 Requisitos del sistema

- Navegador con soporte para:
  - Web Crypto API
  - FileReader API
  - localStorage
  - ES6+

## 👨‍💻 Autor

**Jorge Nieto Ortiz**

---

*Generador de hashes con enfoque en accesibilidad y usabilidad universal.*
