Вариант первый, самый правильный - регистрацию пользователя делать только по https.
Вариант второй - использовать асимметричное шифрование, для каждого сеанса на сервере генерировать пару ключей, передавать открытый ключ клиенту, на клиенте шифровать этим ключом данные, на сервере расшифровывать закрытым ключом.