Ответы Mail.ru: Когда я ввожу первый раз пароль и имя пользователя, они сохраняются с нулевым символом в конце строки или без него?

Николай Веселуха (361566) 1 месяц назад

В базе данных для входа на ресурс следует хранить хэши персональных данных, полученные заданным многократным вычислением от пары [logn password]. Перед тем как принять эту пару следует удалить в начале и в конце пробельные символы каждого слова, проверить их на допустимые символы, количественный диапазон, а пароль на заданную сложность. Делать это придётся дважды: первый раз на клиенте, второй раз на сервере. И тогда без разницы, какой тип строк вы используете. Кроме того для регистрации уникальных пользователей их логины придётся хранить в открытом виде. Это нужно для того, чтобы не допустить во время регистрации создания пользователей с одинаковыми логинами. Исключением являются адреса электронной почты, которые уникальны сами по себе. Также этого не нужно делать, если для пользователей, помимо логина и пароля, предусмотрен уникальный никнейм.

kaiu (115697) 1 месяц назад

Если в базе данных у вас строго имя и пароль определенной длины, то можно сделать так, что хранится будет без нуля. Но даже ввод текста заканчивается когда нажимается кнопка ENTER, но дело алгоритмов сохранять это как ноль или нет.
В большинстве случаев под текст выделяется много символов, буфер так сказать. Так вот без нуля невозможно было бы понять, когда вы закончили ввод, так как в оперативной памяти этот буфер не обновляется обычно. Но снова но! Бывают глобальные данные, что по умолчанию ноль есть и его вводить в память не надо, бывают данные на очищенной флеш и тп...но лучше ноль ввести, даже если вроде есть уверенность, что там все из нулей.
Ну и для ассемблера...какой-то функции, уже не помню, но символом окончания принят $ так что можно по-всякому делать, все от разработчика зависит.
Для языка си же стандарт окончания строки есть 0 и проверку этого легче организовать в коде.