Analizador de complejidad de código
Analiza la complejidad del código fuente para detectar patrones de ofuscación y evaluar la calidad del código. Mide la complejidad ciclomática, la profundidad de anidamiento, la longitud de funciones, la calidad de identificadores y la entropía de Shannon. Obtén una puntuación de legibilidad (A-F) con indicadores de ofuscación marcados por gravedad. 100 % privado: todo el procesamiento ocurre en tu navegador.
Code Complexity Analyzer
Paste source code above or choose a quick example to analyze its complexity
100% Private: All code complexity analysis happens entirely in your browser. Your source code is never sent to any server. No data leaves your device.
Analizador de complejidad de código
[ ]
Pega el código fuente arriba o elige un ejemplo rápido para analizar su complejidad
100 % privado: todo el análisis de complejidad del código ocurre íntegramente en tu navegador. Tu código fuente nunca se envía a ningún servidor. Ningún dato sale de tu dispositivo.
- ¡Copiado!: Informe de análisis copiado al portapapeles.
- Error al copiar: No se pudo copiar al portapapeles.
¿Por qué usar nuestro analizador de complejidad de código?
- Puntuación de complejidad ciclomática: Calcula la complejidad ciclomática contando los puntos de decisión de tu código: if/else, bucles for/while, casos switch, bloques catch, operadores ternarios y operadores lógicos. Las puntuaciones más altas indican código más difícil de probar y mantener que puede estar ofuscado intencionadamente.
- Análisis de profundidad de anidamiento: Analiza la profundidad de anidamiento máxima y media de tu código. Las estructuras muy anidadas (5+ niveles) son una seña característica del código ofuscado o generado por máquina. Nuestro analizador rastrea tanto el anidamiento por llaves como el basado en indentación en todos los lenguajes.
- Detección de patrones de ofuscación: Detecta automáticamente señales de alarma: identificadores cortos (media < 5 caracteres), nombres de variables tipo hexadecimal (formato _0x), funciones anormalmente largas (100+ líneas), entropía extremadamente alta, comentarios escasos y anidamiento excesivo. Cada aviso incluye una valoración de gravedad y una explicación accionable.
- Procesamiento 100 % privado en el navegador: Todo el análisis de complejidad del código ocurre localmente en tu navegador con JavaScript puro. Tu código fuente nunca sale de tu dispositivo: sin subidas a servidores, sin registro de datos y sin problemas de privacidad. 100 % gratis y sin registro.
Casos de uso habituales del analizador de complejidad de código
- Revisión de seguridad de código: Marca código potencialmente malicioso u ofuscado en solicitudes de cambio y envíos de código. Los picos de complejidad, los identificadores sospechosamente cortos y los patrones de entropía anómalos ayudan a los revisores de seguridad a identificar código que merece una inspección más detallada antes del despliegue.
- Auditorías de calidad de código: Evalúa la salud del código midiendo la complejidad ciclomática, la profundidad de anidamiento y la longitud de funciones en tu proyecto. Identifica funciones que superan los umbrales de mantenibilidad y prioriza los esfuerzos de refactorización según datos cuantitativos de complejidad.
- Análisis de malware y cargas útiles: Analiza scripts sospechosos en busca de indicadores de ofuscación antes de ejecutarlos en un entorno aislado. La entropía extremadamente alta, las funciones minificadas en una sola línea, los nombres de variables tipo hexadecimal y los comentarios casi nulos son firmas habituales de cargas útiles maliciosas.
- Educación en programación: Ayuda a los estudiantes a entender los conceptos de complejidad del código visualizando la complejidad ciclomática, la profundidad de anidamiento y las métricas de calidad de identificadores. Compara código bien estructurado con ejemplos ofuscados, lado a lado y con análisis cuantitativo.
- Evaluación de bibliotecas de terceros: Evalúa paquetes de código abierto y dependencias incluidas en busca de ofuscación antes de integrarlos en tu proyecto. El análisis automático de complejidad ayuda a detectar código sospechoso que una revisión manual podría pasar por alto en bases de código grandes.
- Priorización de refactorización: Identifica las funciones más complejas de tu código para priorizar la refactorización. Las funciones con complejidad ciclomática superior a 15, profundidad de anidamiento superior a 5 o longitud superior a 50 líneas son candidatas claras a simplificación y mejores pruebas.
¿Qué es el análisis de complejidad de código?
El análisis de complejidad de código es el proceso de medir cuán complejo es un fragmento de código fuente usando métricas cuantitativas. Va más allá del simple recuento de líneas para evaluar características estructurales como el número de rutas independientes a través del código (complejidad ciclomática), cuán anidados están los bloques, cuán largas son las funciones y cuán significativos son los nombres de los identificadores. En el contexto de la detección de ofuscación, el análisis de complejidad es una herramienta potente porque el código ofuscado suele presentar valores extremos en varias métricas a la vez: identificadores muy cortos, flujo de control muy anidado y complejidad ciclomática anormalmente alta que dificultan la comprensión del código. Nuestro analizador compara estas métricas con umbrales establecidos y marca patrones sospechosos automáticamente.
Cómo funciona nuestro analizador de complejidad de código
- Analizar: Pega tu código fuente y selecciona el lenguaje adecuado. El analizador procesa el código para identificar funciones, estructuras de control de flujo, identificadores, comentarios y tokens; no se necesita compilación real.
- Medir: El motor calcula seis métricas clave: complejidad ciclomática (contando puntos de decisión), profundidad de anidamiento (máxima y media), longitud de funciones (máx., mín., media), análisis de longitud de identificadores (media y extremos), proporción de comentarios respecto al código y entropía de Shannon de la distribución de caracteres.
- Marcar y puntuar: Cada métrica se compara con umbrales de ofuscación para generar avisos específicos con valoraciones de gravedad. Una puntuación global de legibilidad (0-100) y una calificación con letra (A-F) resumen la transparencia del código de un vistazo.
Métricas de complejidad clave explicadas
- Complejidad ciclomática: Cuenta el número de rutas linealmente independientes a través del código. Cada if, else, for, while, case, catch, && y || añade una ruta. Los valores por debajo de 10 se consideran saludables; por encima de 15 es sospechoso; por encima de 30 indica claramente ofuscación.
- Profundidad de anidamiento: Mide cuántos niveles de profundidad alcanzan los bloques de código anidados. 3-4 niveles es normal para lógica compleja. 5-7 es sospechoso. Más de 8 niveles es casi con seguridad código ofuscado o generado por máquina.
- Longitud de identificadores: El código ofuscado usa identificadores muy cortos (a, b, _0x). Una longitud media inferior a 5 caracteres sin identificadores largos es una fuerte señal de ofuscación. El código bien escrito suele promediar 6-12 caracteres por identificador.
- Entropía de tokens: La entropía de Shannon mide la aleatoriedad de la distribución de caracteres. El código natural tiene una entropía de unos 4,0-4,8 bits/carácter. El código ofuscado o codificado a menudo supera los 5,0 bits/carácter debido a cadenas hexadecimales y tokens aleatorizados.
Privacidad, seguridad y disponibilidad
100 % privado: todo el análisis de código, el cálculo de métricas y la generación de avisos ocurren íntegramente en tu navegador con JavaScript puro. Tu código fuente nunca sale de tu dispositivo: sin subidas a servidores, sin registro de datos y sin seguimiento analítico.
Completamente gratis: nuestro analizador de complejidad de código es y será siempre gratuito. Sin registro, sin límites de uso y sin restricciones de tamaño de archivo. Úsalo sin límites para cualquier proyecto: comercial, personal o educativo.
Preguntas frecuentes
El análisis de complejidad de código es el proceso de medir el código fuente con métricas cuantitativas como la complejidad ciclomática, la profundidad de anidamiento, la longitud de funciones y la calidad de identificadores. Estas métricas ayudan a evaluar el mantenimiento, identificar posibles errores y detectar patrones de ofuscación.
La complejidad ciclomática cuenta el número de rutas linealmente independientes a través del código. Cada if/else, for, while, case, catch, operador ternario y AND/OR lógico añade una ruta. Los valores por debajo de 10 son saludables, por encima de 15 son sospechosos y por encima de 30 indican claramente ofuscación.
Una profundidad de anidamiento de 3-4 es normal, 5-7 es sospechosa y por encima de 8 es casi con seguridad código ofuscado o generado por máquina. El anidamiento extremadamente profundo es una seña característica de las herramientas de ofuscación automática.
El código ofuscado usa identificadores muy cortos y sin significado (a, b, _0x). Una longitud media de identificador inferior a 5 caracteres sin nombres significativos es una fuerte señal de ofuscación. El código bien escrito suele promediar 6-12 caracteres por identificador.
La entropía de Shannon mide la aleatoriedad de los caracteres. El código típico tiene 4,0-4,8 bits/carácter. El código ofuscado o codificado a menudo supera los 5,0 bits/carácter debido a cadenas hexadecimales y tokens aleatorizados, lo que convierte la entropía en un potente indicador de ofuscación.
Ninguna herramienta detecta toda la ofuscación. Nuestro analizador se centra en indicadores estructurales: complejidad, anidamiento, nombres y entropía. Es eficaz contra la minificación, el renombrado de variables y el aplanamiento de flujo de control, pero la ofuscación en tiempo de ejecución o criptográfica puede requerir análisis dinámico.
Por supuesto. Todo el análisis, el cálculo de métricas, la generación de avisos y la puntuación ocurren íntegramente en tu navegador. Tu código fuente nunca sale de tu dispositivo. Ningún dato se sube a ningún servidor: procesamiento 100 % privado y local en el navegador.
El analizador admite JavaScript/TypeScript, Python, Java, C#, C, C++, Go y Rust mediante cuatro modos de lenguaje. Cada modo ajusta el análisis a la sintaxis específica del lenguaje, como los dos puntos de Python o los bloques delimitados por llaves.
Sí, 100 % gratuito y sin costes ocultos. Sin registro, sin límites de uso, sin restricciones de tamaño de archivo y sin anuncios. Úsalo sin límites para cualquier proyecto: comercial, personal o educativo.