|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.02.2019, 19:34 | #1 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Ограничения для данных при кодировании в Base64
Здравствуйте.
На днях встал вопрос о хранении хешей паролей в базе. По определённым причинам было принято использовать SHA256. После хеширования строка в чистом виде в любой кодировке нормально храниться в базе не может, получаются знаки вопроса. Но, хеширование в SHA256 позволяет получать не строку, а массив байтов. Код на C#: Код:
Дальнейшее преобразование массива passHash в обычную строку даёт эту самую строку в виде, не приспособленном для хранения в БД (MsSql, nvarchar все дела). Я как человек неискушённый, тут же придумал следующий вариант для хранения: Код:
Код:
Собственно, сюда я пришёл спросить ... Какие такие ограничения у Base64 при том, что кодирую я массив байтов, а не строку ? И что даст второй вариант того, что кодированием можно назвать только условно ?
Подпись ? Не, не слышал ...
|
06.02.2019, 19:54 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
преобразуй хеш в hex и храни в char(64). Кстати в сиквеле и функция есть для получения хеша, с 2012-го кажись
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 06.02.2019 в 19:57. |
06.02.2019, 19:57 | #3 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
В смысле обойти байты с преобразованием каждого в HEX, и склеить в строку ?
Подпись ? Не, не слышал ...
|
06.02.2019, 20:04 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Хоть так или какая уже готовая есть функция для этого.
ЗЫ для базе64 нет ни каких ограничений на входные двоичные данные
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
11.02.2019, 09:18 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
По поводу хранения хеша-а в строковом поле таблицы сиквела. Спокойно храню двоичные данные в char или varchar в базе с кодировкой 1251. При отображении естественно фигвам, а зачем их отображать? В юникодной базе не знаю, возможно так и не получится
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
хочу сделать так чтоб ограничения у всех были,а вот на определенном логине ибо id не было ограничения опыта | martin123 | PHP | 2 | 31.03.2017 16:31 |
Как сделать проверку в реализации алгоритма Хаффмана - при кодировании строки "kkkkkkk" выдавать ошибку о том, что дерево не может быть создано | Smile189 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 17.11.2016 22:25 |
Ограничения на ввод-вывод данных | Olga Sharik | Помощь студентам | 0 | 02.05.2012 11:49 |
Вопрос о кодировании | PetrowD | Общие вопросы Delphi | 9 | 21.02.2012 19:13 |
Соглашение о кодировании .NET | SunKnight | Общие вопросы .NET | 3 | 08.11.2009 19:01 |