Saltar al contenido
🛠️ToolsShed

Calculadora de Entropía de Texto

Calcula la entropía de Shannon y bits por carácter de cualquier texto.

Comienza a escribir para calcular la entropía.

Acerca de esta herramienta

La entropía de Shannon es una medida matemática del contenido de información promedio o aleatoriedad en un mensaje, calculada en bits. Cuando pegas texto en esta calculadora, calcula la entropía basándose en la distribución de frecuencia de caracteres, revelando lo impredecible o desordenado que es el texto. Una entropía más alta indica mayor diversidad en el uso de caracteres; una entropía más baja sugiere patrones repetitivos. Esta métrica es fundamental para la teoría de la información, la criptografía y la compresión de datos, ayudando a profesionales a entender la fortaleza y eficiencia de sus datos.

Para usar esta herramienta, simplemente pega tu texto en el campo de entrada y haz clic en 'Calcular'. La calculadora devuelve instantáneamente el valor de entropía de Shannon (en bits por carácter) y muestra los datos de frecuencia de caracteres individuales. Funciona con cualquier texto—contraseñas, muestras de documentos, fragmentos de código o lenguaje natural—y maneja caracteres especiales, espacios en blanco y Unicode. Esto la convierte en una herramienta esencial para analistas de seguridad que evalúan la calidad de contraseñas, ingenieros que evalúan el potencial de compresión e investigadores que estudian patrones de texto.

Ten en cuenta que una entropía alta por sí sola no garantiza buenas contraseñas; la entropía refleja diversidad de distribución, no verdadera aleatoriedad. La herramienta asume que cada carácter es igualmente probable (máxima entropía) basándose en lo observado, así que la verdadera seguridad criptográfica también depende del método de generación. Para textos grandes, la entropía se estabiliza alrededor de la línea base del lenguaje natural (~1,5 bits por carácter para inglés), mientras que muestras más cortas pueden mostrar mayor variabilidad.

Preguntas Frecuentes

Implementación de Código

import math
import re

def password_entropy(password: str) -> float:
    """Calculate Shannon entropy in bits for a password."""
    pool = 0
    if re.search(r"[a-z]", password): pool += 26
    if re.search(r"[A-Z]", password): pool += 26
    if re.search(r"[0-9]", password): pool += 10
    if re.search(r"[^a-zA-Z0-9]", password): pool += 32  # common special chars
    if pool == 0:
        return 0.0
    return len(password) * math.log2(pool)

def shannon_entropy(text: str) -> float:
    """True Shannon entropy based on character frequency."""
    from collections import Counter
    counts = Counter(text)
    n = len(text)
    return -sum((c / n) * math.log2(c / n) for c in counts.values())

# Examples
print(f"'password' entropy: {password_entropy('password'):.1f} bits")    # ~37.6
print(f"'P@ssw0rd!' entropy: {password_entropy('P@ssw0rd!'):.1f} bits")   # ~52.5
print(f"Random 16-char (all types): {password_entropy('aB3!xK9#mN2@pQ7^'):.1f} bits") # ~104.8

# Strength rating
def strength(bits: float) -> str:
    if bits < 28: return "Very Weak"
    if bits < 36: return "Weak"
    if bits < 60: return "Reasonable"
    if bits < 80: return "Strong"
    return "Very Strong"

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.