usando ad esempio questa pag Base64 Online - base64 decode and encode
scrivendo adminadmin (user=admin ... passw=admin) otterrai questa stringa YWRtaW5hZG1pbg== ... dovrai cercarla nel char c se readString è == a "YWRtaW5hZG1pbg==" manda le altre linee del client.print con codice 200, altrimenti rimandami un 401 dove in pratica riapri il popup, oppure se la pass è sbagliata scrivi con codice 200 client.print Pass errata + un tasto nella pagina "ritorna al login" rilanciando nuovamente un 401 e così all'infinito.
Comunque dipende dal livello di sicurezza che vuoi ottenere. Con la stringa ottenuta dalla decodifica MD5 invece di 16 caratteri ne hai 32, ma a differenza del base64 l'MD5 non è reversibile cioè dalla stringa codificata non si può risalire a user e pass (o comunque è molto difficile si ottengono molte probabilità e molti conflitti) mentre se nel link che ho incollato prima scrivi ..... decodifica questa stringa a base64 YWRtaW5hZG1pbg== puoi risalire all'user e alla pass che poi vai a scrivere nel popup (però prima mi devo attrezzare per intercettarla)
Se a un utente interessa invece codificare tutto il traffico in entrata e in uscita ad esempio il get?on=1 allora deve usare la libreria di codifica e decodifica base64 o la pesantissima MD5, tutto ciò però succhia risorse ad arduino, un 16 MHz è un po' limitato a fare tutto ciò, ma non è impossibile
in linea di principio per avere una maggior sicurezza servirebbe l'https, in questo caso arduino deve essere dietro a un server ben fatto
ciao