Как безопасно передать пароль?
Вариант первый, самый правильный - регистрацию пользователя делать только по https.
Вариант второй - использовать асимметричное шифрование, для каждого сеанса на сервере генерировать пару ключей, передавать открытый ключ клиенту, на клиенте шифровать этим ключом данные, на сервере расшифровывать закрытым ключом.
Можно реализовать что-нибудь типа MSCHAP2, завернутого в SSL с современным алгоритмом хэширования. При обмене сообщениями либо использовать тот же канал SSL, либо в процессе аутентификации вырабатывать ключи шифрования и все сообщения шифровать.