Что такое похожие символы?

Похожие символы — это буквы, цифры и знаки, которые выглядят почти идентично во многих шрифтах, но на самом деле являются разными символами. Например, строчная буква "l" (эль), прописная буква "I" (ай), цифра "1" и символ трубы "|" могут быть почти неразличимы в рубленых шрифтах, таких как Arial или Helvetica. Аналогично, прописная буква "O" и цифра "0" часто путаются.

Эти визуальные неоднозначности вызывают реальные проблемы. В программировании использование 0 (нуля) вместо O в имени переменной приводит к ошибкам, которые крайне сложно обнаружить. В контексте безопасности злоумышленники используют похожие символы для создания обманчивых URL-адресов, имён пользователей или паролей. В повседневном письме читатели могут неправильно интерпретировать слова или коды, когда похожие символы меняются местами.

В отличие от омоглифов — которые включают символы из разных систем письма (например, кириллица "а", имитирующая латинскую "a") — похожие символы существуют в одном наборе ASCII. Они являются частью вашей повседневной клавиатуры, что делает их ещё более легко упускаемыми из виду.

Описание инструмента

Этот инструмент сканирует ваш текст и выделяет каждый символ, принадлежащий группе похожих символов, используя цветные подчёркивания. Каждая группа похожих символов получает свой цвет, что облегчает выявление потенциальных неоднозначностей с первого взгляда. Наведите курсор на любой выделенный символ, чтобы увидеть его точное обозначение, включая полное имя и код Unicode.

Вы можете выбрать, какие группы похожих символов выделять, используя раскрывающееся меню множественного выбора, что позволяет сосредоточиться на конкретных неоднозначностях, важных для вашего случая.

Примеры

Входные данные:

Il1|egal passw0rd: S5Z2B8

Что выделяется:

  • I, l, 1, | — выделены красным (группа l / I / 1 / |)
  • 0 — выделено синим (группа O / 0)
  • S, 5 — выделены фиолетовым (группа S / 5)
  • Z, 2 — выделены оранжевым (группа Z / 2)
  • B, 8 — выделены бирюзовым (группа B / 8)

Пример подсказки при наведении:

Наведение на l показывает: Lowercase L (U+006C) Наведение на I показывает: Uppercase I (U+0049)

Возможности

  • Цветное выделение для 14 групп похожих символов
  • Подсказки при наведении, показывающие точное имя символа и код Unicode
  • Выбираемые группы для сосредоточения на конкретных неоднозначностях
  • Выделение в реальном времени по мере ввода
  • Панель сводки, показывающая обнаруженные группы и количество вхождений

Поддерживаемые группы

Группа Символы Частая путаница
l / I / 1 / | строчная L, прописная I, цифра 1, труба Наиболее распространена в рубленых шрифтах
O / 0 прописная O, цифра 0 Часто встречается в кодах и паролях
rn / m r, n, m "rn" похожа на "m" во многих шрифтах
S / 5 прописная S, цифра 5 Похожие кривые
Z / 2 прописная Z, цифра 2 Сходство диагональных штрихов
B / 8 прописная B, цифра 8 Сходство двойной петли
G / 6 прописная G, цифра 6 Перекрытие изогнутых форм
D / O / 0 прописная D Похожа на O и 0 в округлых шрифтах
q / g строчная q, строчная g Путаница в выносных элементах
cl / d строчная c, строчная d "cl" похожа на "d" при плотном кернингом
vv / w строчная v, строчная w "vv" похожа на "w"
` / ' обратный апостроф, апостроф Почти идентичны в большинстве шрифтов
; / : точка с запятой, двоеточие Отличаются только точкой и запятой
- / – / — дефис, короткое тире, длинное тире Различная длина тире

Варианты использования

  • Проверка кода: Обнаружьте случайное использование O вместо 0 или l вместо 1 в именах переменных, ключах API или значениях конфигурации
  • Аудит безопасности: Выявите потенциально обманчивый текст в URL-адресах, адресах электронной почты или пользовательском контенте, где похожие символы могут использоваться для фишинга или подделки
  • Типография и корректура: Убедитесь, что в серийных номерах, лицензионных ключах или любом тексте, где важна точность, используются правильные символы

Советы

  • Используйте моноширинный шрифт в вашем редакторе, чтобы уменьшить визуальную неоднозначность при написании кода
  • Если вас интересует только конкретная путаница (например, l против 1), отмените выбор всех остальных групп, чтобы уменьшить шум
  • Наведите курсор на любой выделенный символ, чтобы подтвердить его точное обозначение через подсказку