Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Хэши и их хранение


Автор: Bogdan1024 20.9.2007, 16:43
Идея такая: пользователь может вводить разные фразы, и по его запросу выводится результат. Результаты запросов кэшируются, а сами фразы хэшируются чтобы можно было быстрее отыскать в следующий раз уже когда-то запрошенную фразу. 
Посоветуйте пожалуйста хэш-алгоритм из .NET2.0. И как потом этот хэш хранить в БД? Все алгоритмы выдают массив байт, то его конвертить в стринг и сохранять в БД в поле nvarchar? Сравнивать nvarcharы вместо массива байт не очень быстро имхо.

Автор: Bogdan1024 20.9.2007, 17:23
Пока что получилось вот что:
Код

                System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] bytedquery = System.Text.Encoding.Unicode.GetBytes(this.Query);
                byte[] bytedhash = md5.ComputeHash(bytedquery);
                this.Md5Id = System.BitConverter.ToString(bytedhash).Replace("-", string.Empty);//Чтобы влазил в 32 символа.

Это хранится в базе в char(32). 

Автор: Experimenter 20.9.2007, 18:16
Цитата

Все алгоритмы выдают массив байт, то его конвертить в стринг и сохранять в БД в поле nvarchar?

Нормальное явление, издержки производства, частенько в base64 еще конвертят

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)