Невозможно безопасно отправить пароль , который пользователь может проверить без SSL.
Конечно, вы можете написать некоторый JavaScript, который сделает пароль безопасным для передачи по проводной сети посредством хеширования или шифрования с открытым ключом. Но как пользователь может быть уверен в том, что сам JavaScript не был подделан посредником до того, как он достиг их, чтобы отправить пароль злоумышленнику вместо сайта или даже просто поставить под угрозу безопасность алгоритм? Единственным способом было бы, чтобы они были опытными программистами и заставляли их проверять каждую строку вашей страницы и сценария, чтобы убедиться, что они были кошерными, прежде чем вводить пароль. Это не реалистичный сценарий.
Если вы хотите, чтобы пароли были защищены от атак «человек посередине», вы должны купить сертификат SSL. Другого пути нет. Привыкай к этому.
Если я использую MD5, можно изменить эту строку пароля.
Нет ... по крайней мере, нетривиально. Хотя MD5 имеет атаки против него, это алгоритм хеширования и, следовательно, необратимый. Тебе придется его перебить.
Но, опять же, злоумышленнику не нужно смотреть на ваши MD5. Он может просто саботировать JavaScript, который вы отправляете пользователю для создания MD5.