Всё считается в браузере, наружу ничего не уходит.
Адрес с префиксом → маска, диапазон, broadcast, класс сети.
Делит сеть на равные подсети по новому префиксу.
Меняешь любое поле — остальные пересчитаются сами.
IP ⇄ целое число — пригодится для БД и битовых масок.
MD5, SHA-1/256/384/512 от текста — всё локально.
Парсит header и payload, подпись не проверяет.
На crypto.getRandomValues(), а не Math.random().