📜 ⬆️ ⬇️

UTF-8 encoding in Wi-Fi passwords and names (Emoji)

In 2012, it became possible to use UTF-8 characters in the name of a Wi-Fi network. The first thing that comes to mind is to stand out from the gray mass and use Emoji emoticons in the network name. And also, you can make an Emoji password, then you can safely tell your friends: “Connect to the Wi-Fi network for free cheese, the password is: a beer mug and a cookie”.


Not all and not immediately began to support this standard. However, 7 years have passed, and the boom of emoticons in the names of home routers did not happen. So let's arrange this boom now!
It’s a pity, not all firmwares allow you to do this, for example, ZyXel Keenetic 4G II with the latest beta firmware of 2017 is not able to use UTF-8 in SSID. Perhaps somehow you can configure through the CLI, but I did not succeed. In new versions of ZyXel firmware, this feature has been added, but more fresh hardware is needed. Let it be another reason to upgrade the router. On ASUS, TP-Link and other zoo did not try, I immediately took MikroTik, because it definitely works there.

MikroTik


I conducted my experiments on MicroTik hAP lite with the latest stable firmware for today. Most likely this trick will work on all microtics with any firmware.

SSID UTF-8


It is quite simple to change the name, go to the site , copy any characters from the plate into the mold, click Go and copy the result to the terminal:

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

On the iPhone, it looks like this:

UTF-8 password


When guests dispersed, the Wi-Fi network must be protected. The password is also a UTF-8 string. All on the same site we choose a suitable password, click Go. From the result, we take only the value in quotes and write to the terminal:

 /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" 

Connection with password UTF-8


And now the most difficult. How to enter UTF-8 password? When you enter text into messengers, there is a special keyboard layout with Emoji icons. But when you enter a Wi-Fi password, only the standard keyboard is available! You can guess to copy the text of the message from the messenger and paste it in place of the password, but this is unlikely to work. You can set this puzzle to your familiar sysadmins.

User ky0 suggested using a QR code with connection details . However, this trick didn't work on my iPhone.

Connect Mac, iPhone, iPad


This is how I circumvented this restriction on Apple devices: I connected the Mac via the console, and the rest of iDevices downloaded the Wi-Fi network profile from the cloud!

Scan the Wi-Fi network with the command:

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

And let's connect to our network with a given password (the terminal can do UTF-8, unlike Habr):

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

My network card sits on en1, you may be different. Check with the command:

 networksetup -listallhardwareports 



Now Mac has successfully connected to the network, after some short time, it syncs passwords to iCloud, and the iPhone will soon download them and connect to our Wi-Fi by itself.

PS: In the combat system, such passwords should not be set exactly. Although the name of the network will not harm them, even if it does not display a smiley, the device can connect to the network. But to put a UTF-8 password in a cafe or office just does not follow - visitors and colleagues will not appreciate the humor.

At home - why not? In addition, if all devices normally accept such a password, then the neighbor Vaska is unlikely to be able to connect to such a network. A plus will be protection against brute force and against password drain into databases like 3wifi.stascorp.com . RouterScan’s popular cracking routers use ASCII encoding, so when converting a smiley to ASCII, there will be either a quack cracker or an empty string. By the way, check your router, maybe it has long been in the 3wifi database ...

Cool stuff password utf-8! Smileys are easy to remember, you can use different languages, not just English + numbers + some special characters. Lacking only native support in gadgets. Hopefully, manufacturers will implement support for UTF-8 with WPA3 .

ZyXel Keenetic


ZyXel Keenetic OS supports SSID in UTF-8 encoding in firmware 2.13. C0 dated 09/20/2018
device list
Keenetic Giga (KN-1010)
Keenetic Start (KN-1110)
Keenetic 4G (KN-1210)
Keenetic Lite (KN-1310)
Keenetic Omni (KN-1410)
Keenetic City (KN-1510)
Keenetic Air (KN-1610)
Keenetic Extra (KN-1710)
Keenetic Ultra (KN-1810)
Zyxel Keenetic Start II
Zyxel Keenetic Lite III rev.B
Zyxel Keenetic 4G III rev.B
Zyxel Keenetic Giga III
Zyxel Keenetic Ultra II
Zyxel Keenetic Air
Zyxel Keenetic Extra II

For supported devices, the SSID is changed via the web interface.

Xiaomi


In stock firmware supports UTF-8.
Comments from extrawelt

Routers with Padavan firmware


Xiaomi router with Padavan firmware does not allow to specify emoji as SSID by default. But since Validation occurs in JS, it is quite simply solved through the developer console, for example, in Chrome.

You just need to, while on the SSID editing page, write in the console:
 window.validate_ssidchar = function () { return true; }; 


In order for Emoji to be specified in the password, you need to disable another validation function:
 window.validate_string = function () { return true; }; 

Source: www.reddit.com/r/javascript/comments/5zcb8m/can_you_help_me_allow_my_router_to_accept_as_the
Thanks to ferosod for this comment !

Android


Samsung Galaxy S8 + (Android pie) allows you to paste a copied emoji from the buffer in the network name and password. Keyboard standard from Samsung. ( infa from DaemonGloom ).

UPD: Thank you all for the feedback, keep updating the topic with your observations. I wonder if you managed to connect using QR-code ? And they are also interested in Asus, Tp-link, D-Link routers.

TODO:

Source: https://habr.com/ru/post/438672/