Получить только первые 10 символов 256-битного хэша вместо полного значения хэша
Имя пользователя ABC
Пароль DEF
Соль = имя пользователя + пароль IE; ABCDEF(saltkey)
Теперь этот солт-ключ хешируется с использованием алгоритма SHA256, и результат для солт-ключа (ABCDEF) после хеширования: jjaiBx04mbD1ZvsLKuG6PyBFfJcYbl7iCnDCsi2l4tk=
Теперь, как мне укоротить это до меньшего хэша, чтобы в результате были только первые 10 символов, скажем: jjaiBx04mb
1 ответ
Ты можешь использовать String.Substring
:
int start = 0;
int length = 10;
string result = myString.Substring(start, length);
Это вернет подстроку исходной строки, которая начинается в позиции start
и имеет длину length
,
Поэтому, давая начало значение 0
даст первый length
символы исходной строки.
Однако, если я могу сделать предложение, предполагая, что оно находится под вашим контролем, не создавайте соли таким образом. Используйте совершенно случайную последовательность символов, предпочтительно созданную с использованием безопасного генератора случайных чисел, и сохраните ее вместе с именем пользователя и хешированным паролем. Кроме того, сделайте свою соль довольно долго. Я уверен, что вы можете сэкономить дополнительные несколько байтов дискового пространства, которые потребуются.