API intermediaria para generar hashes MD5 para n8n
Cryto es una API REST construida con Express.js que proporciona endpoints para generar hashes criptográficos MD5. Está diseñada específicamente como intermediaria para ser integrada con n8n (plataforma de automatización de flujos de trabajo), pero puede ser utilizada por cualquier cliente REST.
La API incluye características como CORS habilitado, validación robusta de parámetros, logs de debugging y un endpoint keep-alive para mantener el servicio activo en plataformas como Render.
- ✅ Generación de hashes MD5 mediante dos métodos (GET y POST)
- ✅ CORS habilitado para acceso cross-origin
- ✅ Validación robusta de parámetros
- ✅ Endpoint keep-alive para evitar que el servicio se duerma
- ✅ Health check endpoint
- ✅ Logging de debugging
- ✅ Manejo de errores con respuestas JSON consistentes
- ✅ Timestamps en todas las respuestas
- Node.js >= 18.0.0
- npm o yarn
- Clona el repositorio:
git clone https://github.com/CreativityTech-co/Cryto.git cd Cryto
- Instala las dependencias:
npm install
- Configura las variables de entorno (opcional):
# Por defecto, el puerto es 3000 export PORT=3000Modo producción:
npm startModo desarrollo (con auto-reinicio):
npm run devEl servidor estará disponible en
http://localhost:3000GET
/Verifica el estado de la API y lista los endpoints disponibles.
Respuesta:
{ "status": "ok", "message": "Crypto API running", "uptime": 125.43, "endpoints": { "/hash/md5": "Generate MD5 hash (GET with query params)", "/hash/md5/post": "Generate MD5 hash (POST with body)", "/keepalive": "Keep service alive" } }GET
/hash/md5Genera un hash MD5 concatenando
tokenyaccesskey.Parámetros de consulta:
Parámetro Tipo Requerido Descripción tokenstring Sí Token a hashear accesskeystring Sí Clave de acceso a concatenar Ejemplo de solicitud:
curl "http://localhost:3000/hash/md5?token=mytoken&accesskey=mykey"Respuesta exitosa (200):
{ "success": true, "hash": "5d41402abc4b2a76b9719d911017c592", "timestamp": "2026-01-15T16:30:45.123Z" }Respuesta con error (400):
{ "success": false, "error": "Missing required query param: token" }POST
/hash/md5/postAlternativa POST para generar hashes MD5. Útil para cadenas largas o datos sensibles.
Body (JSON):
{ "token": "mytoken", "accesskey": "mykey" }Ejemplo de solicitud:
curl -X POST http://localhost:3000/hash/md5/post \ -H "Content-Type: application/json" \ -d '{ "token": "mytoken", "accesskey": "mykey" }'Respuesta exitosa (200):
{ "success": true, "hash": "5d41402abc4b2a76b9719d911017c592", "timestamp": "2026-01-15T16:30:45.123Z" }Respuesta con error (400):
{ "success": false, "error": "Missing required fields: token and accesskey" }GET
/keepaliveEndpoint para mantener el servicio activo. Útil cuando se despliega en plataformas que ponen en sleep servicios inactivos (ej: Render).
Respuesta:
{ "status": "alive", "uptime": 245.67, "lastRequest": "2026-01-15T16:35:22.456Z" }Para integrar Cryto con n8n, utiliza el nodo HTTP Request:
Método: GET o POST (según prefieras)
URL:
http://tu-dominio:puerto/hash/md5o/hash/md5/postParámetros:
token: El valor a hashearaccesskey: La clave de accesoHeaders (POST):
Content-Type: application/json {{ $request( 'http://localhost:3000/hash/md5?token=' + encodeURIComponent(token) + '&accesskey=' + encodeURIComponent(accesskey) ).json() }}{ "express": "^4.18.2", // Framework web "crypto-js": "^4.2.0", // Librería de criptografía "cors": "^2.8.5" // CORS middleware }Dependencias de desarrollo:
{ "nodemon": "^3.0.2" // Auto-reinicio durante desarrollo }npm start # Inicia el servidor en modo producción npm run dev # Inicia el servidor con nodemon para desarrolloCryto/ ├── server.js # Archivo principal de la aplicación ├── package.json # Configuración del proyecto ├── package-lock.json # Lock file de dependencias ├── .gitignore # Archivos a ignorar en git └── README.md # Este archivo
- Conecta tu repositorio GitHub a Render
- Crea un nuevo Web Service
- Configura:
- Build Command:
npm install- Start Command:
npm start- Environment: Node
- Añade un cron job para el keep-alive:
*/10 * * * * curl https://tu-servicio.onrender.com/keepaliveFROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY server.js . EXPOSE 3000 CMD ["npm", "start"]
⚠️ Nota importante: MD5 no es criptográficamente seguro para nuevas aplicaciones. Se recomienda:
- Usar MD5 solo cuando es requerido por sistemas legados o integraciones específicas
- Nunca usar MD5 para almacenar contraseñas
- Para nuevas aplicaciones, considera usar SHA-256 o SHA-512
El servidor registra información útil en consola:
[2026-01-15T16:30:45.123Z] Hash request - Token length: 10, AccessKey: myke...Para desactivar logs en producción, comenta la línea
console.log()enserver.js.Este proyecto está bajo licencia MIT. Ver archivo LICENSE para más detalles.
CREATIVITY TECH - GitHub
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature)- Commit tus cambios (
git commit -m 'Add some AmazingFeature')- Push a la rama (
git push origin feature/AmazingFeature)- Abre un Pull Request
Si encuentras problemas o tienes sugerencias, abre un issue en el repositorio.
- ✨ Lanzamiento inicial
- ✨ Endpoints GET y POST para generación de hashes MD5
- ✨ Endpoint keep-alive para mantener servicio activo
- ✨ Health check endpoint
- ✨ CORS habilitado
- ✨ Validación robusta de parámetros
Creado con ❤️ por CREATIVITY TECH
-
Notifications
You must be signed in to change notification settings - Fork 0
CreativityTech-co/Cryto
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|