Ошибка или упоминание вида «custom charset 1» (или «?1», «-1») в Hashcat появляется, когда в маске атаки используется пользовательский набор символов, который либо не задан, либо задан неверно. Hashcat поддерживает до четырёх пользовательских наборов символов — custom charset с номерами от 1 до 4 — и ссылается на них в маске через плейсхолдеры ?1, ?2, ?3 и ?4. Если плейсхолдер встречается в маске, а соответствующий набор не определён параметром командной строки, программа завершит работу с ошибкой.
Ниже разберём, как устроена эта система, чем пользовательские наборы отличаются от встроенных, как правильно их задавать и какие типичные ошибки приводят к сообщениям о «custom charset под номером».
Что такое charset в контексте перебора паролей
Charset (набор символов) — это перечень символов, из которых Hashcat составляет кандидаты в пароль при масковой атаке (режим -a 3). Встроенные наборы обозначаются короткими кодами: ?l — строчные латинские буквы, ?u — заглавные, ?d — цифры, ?s — специальные символы, ?a — все печатаемые символы.
Когда встроенных наборов недостаточно — например, известно, что пароль состоит только из цифр и букв «abc», — используются пользовательские наборы. Именно они и называются custom charset, а номер после названия указывает, какой из четырёх слотов задействован.
💡Custom charset — это пользовательский набор символов для масковой атаки. Номер (1–4) — это слот, в который набор загружается и на который ссылается маска через ?1, ?2, ?3, ?4.