Vai al contenuto
🛠️ToolsShed

Calcolatore di Entropia del Testo

Calcola l'entropia di Shannon e i bit per carattere di qualsiasi testo.

Inizia a digitare per calcolare l'entropia.

Informazioni sullo strumento

L'entropia di Shannon è una misura matematica del contenuto informativo medio o della casualità in un messaggio, calcolata in bit. Quando incolla il testo in questo calcolatore, calcola l'entropia in base alla distribuzione di frequenza dei caratteri, rivelando quanto il testo è imprevedibile o disordinato. Entropia più elevata indica una maggiore diversità nell'uso dei caratteri; entropia più bassa suggerisce modelli ripetitivi. Questa metrica è fondamentale per la teoria dell'informazione, la crittografia e la compressione dei dati, aiutando i professionisti a comprendere la forza e l'efficienza dei loro dati.

Per utilizzare questo strumento, semplicemente incolla il tuo testo nel campo di input e fai clic su 'Calcola'. Il calcolatore restituisce istantaneamente il valore di entropia di Shannon (in bit per carattere) e visualizza i dati di frequenza dei singoli caratteri. Funziona su qualsiasi testo—password, campioni di documenti, frammenti di codice o linguaggio naturale—e gestisce caratteri speciali, spazi e Unicode. Questo lo rende uno strumento essenziale per gli analisti di sicurezza che valutano la qualità delle password, gli ingegneri che valutano il potenziale di compressione e i ricercatori che studiano i modelli di testo.

Ricorda che l'entropia elevata da sola non garantisce buone password; l'entropia riflette la diversità della distribuzione, non la vera casualità. Lo strumento presuppone che ogni carattere sia ugualmente probabile (entropia massima) in base a quanto osservato, quindi la vera sicurezza crittografica dipende anche dal metodo di generazione. Per testi di grandi dimensioni, l'entropia si stabilizza attorno al baseline del linguaggio naturale (~1,5 bit per carattere per l'inglese), mentre i campioni più piccoli possono mostrare maggiore variabilità.

Domande Frequenti

Implementazione del Codice

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.