Калькулятор энтропии Шеннона
Вставьте строку, ключ или короткий текст и узнайте, сколько информации в среднем несёт каждый символ. Калькулятор посчитает каждый символ (байт или слово), применит формулу Шеннона и сравнит результат с максимумом для такого числа разных символов.
Работает в браузере: всё, что вы вводите, никуда не отправляется.
Как пользоваться
- Вставьте или введите текст. Пробелы тоже считаются символами (в строке частот они показаны как ␣).
- Выберите, что считать символом: знак, байт UTF-8 или слово (слова разделяются пробелами).
- Выберите единицу и смотрите энтропию на символ, общий объём информации и самые частые символы.
Формула
Для текста из n символов, где символ i встречается cᵢ раз, pᵢ = cᵢ ÷ n и
H = −Σ pᵢ · log(pᵢ)
Всего информации = H × n. При k разных символах максимум равен log(k) и достигается, когда все они встречаются одинаково часто; эффективность = H ÷ log(k).
Пример
В слове abracadabra 11 знаков: a — 5, b — 2, r — 2, c — 1, d — 1.
- H = −(5/11·log₂ 5/11 + 2·2/11·log₂ 2/11 + 2·1/11·log₂ 1/11) = 2,0404 бита на знак.
- Всего: 2,0404 × 11 = 22,44 бита.
- Максимум для 5 символов: log₂ 5 = 2,3219 бита, эффективность — 87,9 %.
Советы
- Энтропия — только об этой строке. Символы считаются независимыми, порядок не учитывается: у abab и aabb одинаковое значение.
- Сравнивайте в одном режиме. Для кириллицы знаки и байты дают разные числа — выберите один режим и не меняйте.
- Случайные ключи из шестнадцатеричных цифр приближаются к 4 битам на знак, ключи Base64 — к 6, когда они достаточно длинные, чтобы встретились все символы.
Частые вопросы
Что такое энтропия Шеннона?
Это среднее количество информации на символ: H = −Σ p·log₂(p), где p — доля каждого символа. У строки из одной повторяющейся буквы энтропия 0, у строки, где четыре буквы встречаются одинаково часто, — 2 бита на символ.
Высокая энтропия — значит, надёжный пароль?
Сама по себе нет. Калькулятор измеряет, насколько равномерно распределены символы именно этой строки, а не то, как пароль был выбран. И случайный пароль из 12 знаков, и распространённое слово могут выглядеть разнообразно. Для паролей есть проверка надёжности, которая оценивает трудность подбора.
Какую единицу выбрать?
В информатике обычно берут биты (основание 2): это число двоичных разрядов на символ при идеальном кодировании. Наты используют натуральный логарифм — их встречают в статистике и машинном обучении, хартли — десятичный. 1 нат = 1,4427 бита.
Почему байтов больше, чем символов?
В UTF-8 латинская буква занимает один байт, кириллица и буквы с диакритикой — два, многие эмодзи — четыре. В режиме байтов энтропия считается по значениям байтов — так текст видит архиватор.
Что означает эффективность?
Энтропия, делённая на log(k), где k — число разных символов. 100 % — все символы встречаются одинаково часто; чем меньше, тем сильнее преобладают некоторые символы и тем предсказуемее текст.