UTF-8 кодировка в названиях и паролях Wi-Fi (Emoji)

В 2012 году появилась возможность использовать в названии сети Wi-Fi символы UTF-8. Первое, что приходит на ум — выделиться из серой массы и использовать в названии сети смайлики Emoji. А еще, можно сделать Emoji пароль, тогда друзьям можно смело сообщать: «Подключись к Wi-Fi сети бесплатный сыр, пароль: кружка пива и печенька».
enyx4gcdnndwagdxs05s2ulwa58.png

Не все и не сразу стали поддерживать этот стандарт. Однако прошло 7 лет, а бума смайликов в названиях домашних роутеров так и не произошло. Так давайте устроим этот бум сейчас!
Жаль, далеко не все прошивки позволяют это сделать, например ZyXel Keenetic 4G II с последней бета прошивкой 2017 года не умеет UTF-8 в SSID. Возможно как-то можно через CLI настроить, но у меня не получилось. В новых версиях прошивки ZyXel добавили эту возможность, однако нужно более свежее железо. Пусть это будет еще один повод обновить роутер. На ASUS, TP-Link и прочем зоопарке не пробовал, сразу взял MikroTik, т.к. там это точно работает.

MikroTik


Я проводил свои опыты на MicroTik hAP lite с последней на сегодня стабильной прошивкой. Скорее всего этот трюк будет работать на всех микротиках с любой прошивкой.

SSID UTF-8


Сменить название довольно просто, идем на сайт, копипастим в формочку любые символы из таблички, жмем Go и копируем результат в терминал:

/interface wireless set [find name="wlan1"] ssid="\F0\9F\86\93\F0\9F\A7\80"


На iPhone это выглядит так:
8_vmdk1yzu0cwz6a2mfqajdzwew.jpeg

Пароль UTF-8


Когда гости разошлись, сеть Wi-Fi надо запаролить. Паролем сделаем также UTF-8 строку. Все на том же сайте выбираем себе подходящий пароль, жмем Go. Из результата берем только значение в кавычках и пишем в терминал:

/interface wireless security-profiles set [find name="default"] 
mode=dynamic-keys authentication-types=wpa2-psk wpa2-pre-shared-key="\F0\9F\86\93\F0\9F\A7\80"

Подключение с паролем UTF-8


И вот теперь самое сложное. Как ввести пароль UTF-8? Когда Вы вводите текст в мессенджеры, то там и раскладка клавиатуры специальная есть с иконками Emoji. Но при вводе пароля Wi-Fi доступна только стандартная клавиатура! Можно догадаться скопировать текст сообщения из мессенджера и вставить его вместо пароля, но вряд ли это сработает. Можете задать эту задачку своим знакомым сисадминам.
Пользователь ky0 предложил использовать QR-код с реквизитами подключения. Однако на моем iPhone этот трюк не сработал.

Подключение Mac, iPhone, iPad


Вот как я обошел это ограничение на устройствах Apple: подключил Мак через консоль, а остальные iДевайсы загрузили профиль сети Wi-Fi из облака!
Просканируем сети Wi-Fi командой:

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s


И подключимся к нашей сети с заданным паролем (терминал умеет в UTF-8, в отличае от Хабра):

networksetup -setairportnetwork en1 [название] [пароль]


У меня сетевая карточка сидит на en1, у Вас может отличаться. Проверьте командой:

networksetup -listallhardwareports


gdrpem6xwtucdtz1zprwion325s.png
Теперь Mac успешно подключился к сети, спустя какое-то небольшое время он синхронизирует пароли в iCloud, и iPhone скоро загрузит их и самостоятельно подключится к нашей Wi-Fi.

P.S.: В боевой системе такие пароли ставить точно не следует. Хотя в названии сети вреда от них не будет, даже если не отобразит смайлик, к сети устройство подключиться сможет. Но ставить UTF-8 пароль в кафе или офисе точно не следует — посетители и коллеги не оценят юмора.
Дома — почему бы и нет? К тому же если все устройства нормально примут такой пароль, то вот сосед Васька вряд ли сможет подключиться к такой сети. Плюсом будет защита от перебора и от слива пароля в базы типа 3wifi.stascorp.com. Популярная крякалка роутеров RouterScan использует ASCII кодировку, по-этому при конвертации смайлика в ASCII будут либо крякозябры, либо пустая строка. Кстати, проверь свой роутер, возможно он давно уже в базе 3wifi…

Крутая вещь пароль UTF-8! Смайлики легко запомнить, можно использовать разные языки, а не только Английский+цифры+некоторые спецсимволы. Не хватает только нативной поддержки в гаджетах. Надеюсь производители внедрят поддержку UTF-8 вместе с WPA3.

Xiaomi


Xiaomi router с прошивкой Padavan по-умолчанию не позволяет указывать эмодзи в качестве SSID. Но т.к. валидация происходит в JS, это довольно просто решается через консоль разработчика, например, в Хроме.
Нужно просто, находясь на странице редактирования SSID, написать в консоли:

window.validate_ssidchar = function () { return true; };


Чтобы эмодзи можно было указать и в пароле, нужно выполнить отключить еще одну функцию валидации:

window.validate_string = function () { return true; };


Источник: www.reddit.com/r/javascript/comments/5zcb8m/can_you_help_me_allow_my_router_to_accept_as_the
Спасибо пользователю ferosod за этот комментарий!

TODO:

  • Поддержка UTF-8 SSID в роутерах ASUS/TP-Link/D-Link/etc?
  • Подключение с паролем UTF-8 в Windows/Linux/Android?
  • Попробовать QR-code для подключения
  • Анимация скриптом

© Habrahabr.ru