Хеш до 16 символов - PullRequest
       2

Хеш до 16 символов

0 голосов
/ 19 сентября 2018

Я бы хотел получить фиксированную длину из 16 символов путем хеширования входной строки.Я предпочел бы не делать что-то вроде хэша, такого как SHA256, а затем просто брать первые несколько символов.

1 Ответ

0 голосов
/ 19 сентября 2018
  • SHA-256 выдает 256 бит
  • Юникод использует 16 бит на символ

Поэтому: (256/16 = 16)

256 бит из набора символов хэш / 16 бит = 16 символов!

Encoding enc = Encoding.ASCII;
byte[] buffer = enc.GetBytes(uniqueString);

var crypto = new SHA256CryptoServiceProvider();
byte[] hash = crypto.ComputeHash(buffer);

return Encoding.Unicode.GetString(hash); //16 characters
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...