Я работаю в C # и MSSQL, и, как и следовало ожидать, я храню свои пароли как соленые и хэшированные
Когда я смотрю на хеш, хранящийся в столбце nvarchar (например, из провайдера членства aspnet). Мне всегда было любопытно, почему сгенерированные значения Salt и Hash всегда заканчиваются одним или двумя знаками равенства.
Я видел подобные вещи при работе с алгоритмами шифрования, это совпадение или есть причина для этого?
hash("my password")
массив,[1,2,3,4,5]
и мне нужно сохранить эти значения в базе данных, есть худшие варианты, чем хранить строкуAQIDBAU=
(Конечно, если используемая хеш-функция уже генерирует строку, кажется немного глупым потом кодировать ее Base64. )Ответы:
Эти хэшированные строки (обычно?) Кодируются в формате Base64, а знак равенства используется для заполнения строки, чтобы сделать длину (число байтов) делимой на три. Википедия объясняет это довольно хорошо: http://en.wikipedia.org/wiki/Base64 .
источник
Может ли это быть дополнение кодировки Base 64?
Последовательность '==' указывает, что последняя группа содержала только один байт, а '=' указывает, что она содержала два байта. В приведенном ниже примере показано, как усечение ввода всей вышеприведенной цитаты изменяет выходной отступ:
http://en.wikipedia.org/wiki/Base64#Output_padding
источник