Получить только первые 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 символы исходной строки.

Однако, если я могу сделать предложение, предполагая, что оно находится под вашим контролем, не создавайте соли таким образом. Используйте совершенно случайную последовательность символов, предпочтительно созданную с использованием безопасного генератора случайных чисел, и сохраните ее вместе с именем пользователя и хешированным паролем. Кроме того, сделайте свою соль довольно долго. Я уверен, что вы можете сэкономить дополнительные несколько байтов дискового пространства, которые потребуются.

Другие вопросы по тегам