Многие сайты ограничивают набор символов, которые можно использовать в паролях - выберите набор, который не вызовет у вас горя.Это, вероятно, означает буквенно-цифровые символы и некоторые знаки препинания (запятая, точка, тире).Предполагая, что эти сайты меня раздражают - я использую богатый набор символов в своих паролях, когда мне предоставляется такая возможность, и на сайтах, предназначенных только для буквенно-цифровых символов, я обычно использую в качестве пароля глупость, например «IHateNoPunctSites».
А как насчет отправки пароля в виде шестнадцатеричной строки или строки в кодировке base-64?Затем вы можете декодировать строку в конце, будучи настолько осторожным, насколько это необходимо, чтобы предотвратить любое внедрение без ограничения набора символов, используемого в пароле.Когда вам нужно проверить пароль, вы можете убедиться, что делаете это правильно, используя параметризованный запрос.Или вы можете хешировать пароль с его солью перед отправкой запроса в файл паролей.В любом случае, вы не должны делать много с паролями.