Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Хэширование в .net

422
24 апреля 2006 года
Dimarik
181 / / 12.02.2005
Вот нужно захэшировать строку. Подскажите какой класс этим занимается. Какие значения возвращают. Ну, например, если хэшировать по алгоритму MD5, то какой длины будет захэшированная строка.

Заранее спасибо.
385
25 апреля 2006 года
SomewherSomehow
477 / / 25.07.2004
Цитата:
Originally posted by Dimarik
Вот нужно захэшировать строку. Подскажите какой класс этим занимается. Какие значения возвращают. Ну, например, если хэшировать по алгоритму MD5, то какой длины будет захэшированная строка.

Заранее спасибо.



Например:

Код:
using System.Security.Cryptography;

        private string EncryptMD5 (string StrToEncrypt)
        {
            MD5 md5 = new MD5CryptoServiceProvider();

            byte[] buf = new byte[StrToEncrypt.Length];
           
            for (int i=0; i<StrToEncrypt.Length; ++i)
                buf = (byte)StrToEncrypt;
           
            return Convert.ToBase64String(md5.ComputeHash (buf));
        }
273
30 апреля 2006 года
3A3-968M
1.2K / / 22.12.2005
Не вижу смысла хэшировать строчку из нескольких десятков символом алгоритмом MD5 или SHA, для этого подойдут простые алгоритмы (но от этого они не менее эффективны). Вот, например, этот хэш я использую в своём компиляторе:
public static int GetHashCode(string str, int hashsize)
{
int checksum = 0;
foreach (char c in str) checksum = (checksum << 10) - (checksum << 5) - checksum + (ushort)c;
return checksum % hashsize;
}
Параметр hashsize выбирается таким образом, чтобы это было простое число большого размера. Эта хэш-функция не даёт коллизий на диапазоне [0; hashsize-1], сам анализ прводил
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог