Нужен JavaScript. Без него страница не работает: вся криптография выполняется здесь, в браузере, а не на сервере.
Отличие от приложения одно, и оно честное: код страницы приходит заново при каждой загрузке, и проверить, что пришёл именно шифрующий код, а не копирующий ключи, нечем — ни вам, ни нам. Отдаёт его тот же сервер, где лежат сообщения, — значит от того, кто им распоряжается, веб-версия не защищает. У приложения такой дыры нет: оно скачано один раз и не переспрашивает сервер, чем ему быть. Метаданные — кто с кем и когда переписывается — не закрыты ни здесь, ни в приложении.