Extensión de navegador (Chrome/Safari) que funciona como espejo de tu autenticador móvil, permitiéndote copiar códigos MFA directamente sin necesidad de desbloquear tu celular.
Ver en GitHub | Reportar Bug | Solicitar Feature
- 🚀 Acceso Rápido: Genera códigos TOTP instantáneamente desde tu navegador
- 🪟 Sidebar Integrado: Se abre como panel lateral en Chrome/Edge para mejor UX (no como popup modal)
- 📋 Copiar con un Clic: Copia códigos directamente al portapapeles
- ✍️ Entrada Manual: Agrega cuentas ingresando la clave secreta manualmente
- 📷 Escaneo QR: Escanea códigos QR directamente desde la extensión (próximamente)
- 🎨 UI Moderna: Interfaz limpia y elegante con animaciones suaves
- ⏱️ Actualización en Tiempo Real: Los códigos se actualizan automáticamente
- 🔒 Almacenamiento Seguro: Tus claves se guardan localmente en tu navegador
- 🌐 Multiplataforma: Compatible con Windows y macOS
- Manifest V3: Última versión del sistema de extensiones de Chrome
- OTPAuth.js: Librería robusta para generación de códigos TOTP
- Vanilla JavaScript: Sin frameworks pesados, rápido y eficiente
- CSS Moderno: Variables CSS, Grid, Flexbox, animaciones
- Clona o descarga este repositorio
- Abre Chrome y ve a
chrome://extensions/ - Activa el "Modo de desarrollador" (esquina superior derecha)
- Haz clic en "Cargar extensión sin empaquetar"
- Selecciona la carpeta
TOTP-Extension
- Abre Safari → Preferencias → Avanzado
- Marca "Mostrar el menú Desarrollo en la barra de menús"
- Ve a Desarrollo → Permitir extensiones sin firmar
- Safari → Preferencias → Extensiones
- Activa "TOTP Authenticator"
💡 Nota: En Chrome/Edge/Brave, la extensión se abre como sidebar (panel lateral) en lugar de popup modal, proporcionando una experiencia más integrada y cómoda.
- Haz clic en el ícono de la extensión (se abrirá el sidebar)
- Selecciona "Agregar Cuenta" o "Agregar Primera Cuenta"
- Elige la pestaña "✍️ Manual"
- Completa el formulario:
- Nombre: Ej. "Google", "GitHub", "AWS"
- Plataforma: Ej. "Gmail personal", "Trabajo", "Proyecto X"
- Clave Secreta: El código Base32 que te proporciona la plataforma
- Dígitos: Usualmente 6 (algunos servicios usan 7 u 8)
- Período: Usualmente 30 segundos
- Algoritmo: Usualmente SHA1
- Haz clic en "Guardar Cuenta"
- Opción 1: Haz clic en el botón "Copiar" de la cuenta
- Opción 2: Haz clic en cualquier parte de la tarjeta de la cuenta
- El código se copiará automáticamente y verás confirmación visual
- Haz clic en el ícono de basura (🗑️) en la esquina superior derecha de la tarjeta
- Confirma la eliminación
Cuando configuras autenticación de dos factores en un servicio:
- El servicio te mostrará un código QR
- Usualmente hay una opción que dice "¿No puedes escanear? Ingresar clave manualmente"
- Al hacer clic ahí, verás una cadena alfanumérica (la clave secreta en Base32)
- Esa es la clave que debes ingresar en esta extensión
Ejemplo de clave: JBSWY3DPEHPK3PXP o GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
Sí, todas las claves se almacenan localmente en tu navegador usando la Chrome Storage API. Nunca se envían a ningún servidor externo. Sin embargo, es importante que:
- Mantengas tu computadora segura y actualizada
- Uses autenticación en tu sistema operativo
- Mantengas un respaldo de tus claves (función de exportar)
¡Absolutamente! La extensión funciona completamente offline. Los códigos TOTP se generan localmente usando tu reloj del sistema. No necesitas conexión a internet en ningún momento.
Siempre debes mantener un método de respaldo:
- Guarda las claves secretas originales en un lugar seguro
- Usa la función de Exportar para crear respaldos periódicos
- Configura métodos de recuperación en los servicios (email, SMS, códigos de recuperación)
Esto puede pasar si:
- Reloj desincronizado: Asegúrate de que la hora de tu computadora esté correcta
- Zona horaria incorrecta: Verifica la configuración de zona horaria
- Configuración diferente: Verifica que uses los mismos parámetros (algoritmo, dígitos, período)
Actualmente no hay sincronización automática. Sin embargo, puedes:
- Exportar tus cuentas en un dispositivo
- Importar el archivo en otro dispositivo
- (Próximamente se agregará sincronización encriptada opcional)
Sí, esta extensión es compatible con cualquier servicio que use TOTP:
- Google Authenticator
- Microsoft Authenticator
- Authy
- 1Password
- LastPass Authenticator
- Y cualquier otro que siga el estándar RFC 6238
Actualmente, para modificar una cuenta debes:
- Eliminar la cuenta existente
- Agregar una nueva con la información correcta (La funcionalidad de edición se agregará en una futura versión)
La barra se vuelve roja cuando quedan menos de 10 segundos antes de que el código cambie. Esto te da una advertencia visual para que copies el código antes de que expire.
Sí, la extensión está diseñada para ser compatible con Safari en macOS. Sigue las instrucciones de instalación específicas para Safari en la sección de instalación.
No, la extensión está optimizada para bajo consumo:
- Throttling de renders (máximo 10 por segundo)
- Actualizaciones inteligentes (solo cuando es necesario)
- Sin conexiones de red
- Código JavaScript eficiente
- CSS optimizado con variables
Si borras la extensión o los datos del navegador, perderás todas las cuentas guardadas. Por eso es crucial:
- Hacer respaldos regulares (botón Exportar)
- Mantener las claves secretas originales
- No depender únicamente de esta extensión
Próximamente
- ✅ Todas las claves se almacenan localmente en tu navegador
- ✅ No se envía ninguna información a servidores externos
- ✅ El código es open source y auditable
⚠️ Importante: Esta extensión es para conveniencia. Mantén también tu autenticador móvil como respaldo⚠️ No compartas tus claves secretas con nadie
Esta extensión implementa el estándar RFC 6238 (TOTP: Time-Based One-Time Password):
- Toma la clave secreta compartida (en Base32)
- Obtiene el timestamp actual en segundos
- Calcula el contador:
timestamp / período(usualmente 30s) - Genera un HMAC-SHA1 (o SHA256/SHA512) del contador usando la clave
- Extrae un código de 6-8 dígitos del hash resultante
- El código cambia cada período (30 segundos)
TOTP-Extension/
├── manifest.json # Configuración de la extensión
├── popup/
│ ├── popup.html # Interfaz del popup
│ ├── popup.css # Estilos modernos
│ └── popup.js # Lógica de la UI
├── background/
│ └── background.js # Service worker
├── libs/
│ └── otpauth-9.1.3.min.js # Librería TOTP
├── icons/ # Íconos de la extensión
└── README.md
- Generación básica de códigos TOTP
- Interfaz moderna con UX mejorada
- Almacenamiento persistente de cuentas
- Copiar al portapapeles con un clic
- Barra de progreso de tiempo
- Eliminación de cuentas
- Escaneo de códigos QR con cámara
- Exportar/importar cuentas (con encriptación)
- Búsqueda de cuentas
- Categorías/etiquetas
- Temas (claro/oscuro)
- Sincronización entre dispositivos (opcional, con encriptación)
- Soporte para HOTP (Counter-based OTP)
¡Las contribuciones son bienvenidas! Lee nuestra Guía de Contribución para más detalles.
Proceso rápido:
- Abre un issue o comenta en uno existente
- Fork el proyecto en GitHub
- Crea una rama:
git checkout -b feature/nueva-funcionalidad - Commit:
git commit -m 'Add: nueva funcionalidad' - Push:
git push origin feature/nueva-funcionalidad - Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
Esta extensión es una herramienta de conveniencia y debe usarse como complemento, no como reemplazo de tu autenticador móvil principal. Mantén siempre un método de respaldo para acceder a tus códigos MFA.
- OTPAuth.js: Librería TOTP/HOTP
- Basado en el proyecto totp-generator
Hecho con ❤️ para facilitar tu workflow diario
