Найдено результатов: 7

Как бы функция sdbm hash была реализована в C#?

Как функция sdbm hash (например, эта ) может быть реализована в C# ?

c#   hash    

486   3   21:06, 1st October, 2020


Как сгенерировать хэш-код из массива байтов в C#?

Скажем, у меня есть объект, который хранит массив байтов, и я хочу иметь возможность эффективно генерировать хэш-код для него. Я использовал криптографические функции hash для этого в прошлом, потому что они просты в реализации, но они делают намного больше работы, чем должны быть криптографически однонаправленными, и меня это не волнует (я просто использую хэш-код как ключ к хэш-таблице).

Вот что у меня сегодня есть:

struct SomeData : IEquatable<SomeData>
{
    private readonly byte[] data;
    public SomeData(byte[] data)
    {
        if (null == data || data.Length <= 0)
        {
            throw new ArgumentException("data");
        }
        this.data = new byte[data.Length];
        Array.Copy(data, this.data, data.Length);
    }

    public override bool Equals(object obj)
    {
        return obj is SomeData && Equals((SomeData)obj);
    }

    public bool Equals(SomeData other)
    {
        if (other.data.Length != data.Length)
        {
            return false;
        }
        for (int i = 0; i < data.Length; ++i)
        {
            if (data[i] != other.data[i])
            {
                return false;
            }
        }
        return true;
    }
    public override int GetHashCode()
    {
        return BitConverter.ToInt32(new MD5CryptoServiceProvider().ComputeHash(data), 0);
    }
}

Есть какие-нибудь мысли?


ДП: вы правы, что я пропустил чек в Equals, я его обновил. Использование существующего хэш-кода из массива байтов приведет к равенству ссылок (или, по крайней мере, к тому же самому понятию, переведенному в хэш-коды). например:

byte[] b1 = new byte[] { 1 };
byte[] b2 = new byte[] { 1 };
int h1 = b1.GetHashCode();
int h2 = b2.GetHashCode();

С этим кодом, несмотря на то, что два байтовых массива имеют одинаковые значения внутри них, они ссылаются на разные части памяти и приведут (вероятно) к разным кодам hash. Мне нужно, чтобы коды hash для двух байтовых массивов с одинаковым содержимым были равны.

c#   hash    

770   11   16:12, 27th August, 2020


почему загрузки иногда помечаются md5, sha1 и другими индикаторами hash?

Я видел это повсюду:

Скачать здесь! В SHA1 = 8e1ed2ce9e7e473d38a9dc7824a384a9ac34d7d0

Что это значит? Как hash входит в игру, насколько загружается и... Что я могу сделать из этого? Является ли это устаревшим элементом, где вам приходилось проверять некоторую контрольную сумму после загрузки всего файла?

hash   checksum   download    

784   7   00:51, 16th August, 2020


Как бы вы реализовали хэш-таблицу в языке x?

Смысл этого вопроса состоит в том, чтобы собрать список примеров реализации хэш-таблиц с использованием массивов на разных языках. Было бы также неплохо, если бы кто-то мог дать довольно подробный обзор того, как они работают, и что происходит с каждым примером.

Редактировать :

Почему бы просто не использовать встроенные функции hash в вашем конкретном языке?

Потому что мы должны знать, как работают таблицы hash и уметь их реализовывать. Это может показаться не очень важной темой, но знание того, как работает одна из наиболее часто используемых структур данных, кажется мне очень важным. Если это должно стать Википедией программирования, то вот некоторые из типов вопросов, за которыми я сюда приду. Я не ищу книгу CS, которая будет написана здесь. Я мог бы взять с полки вступление к алгоритмам и прочитать главу о таблицах hash и получить такую информацию. Более конкретно, то, что я ищу, - это примеры кода . Не только для меня в частности, но и для других, кто, возможно, однажды будет искать подобную информацию и наткнется на эту страницу.

Если бы вы должны были их реализовать и не могли использовать встроенные функции, как бы вы это сделали?

Вам не нужно ставить код здесь. Положите его в пастебин и просто соедините его.

arrays   hash   language-agnostic    

514   9   05:23, 16th August, 2020


Какие вопросы следует учитывать при переопределении equals и hashCode в Java?

Какие проблемы / подводные камни необходимо учитывать при переопределении equals и hashCode ?

java   override   equals   hashcode    

492   9   06:21, 8th August, 2020


Как создать таблицу hash в Java?

Каков наиболее простой способ создания таблицы hash (или ассоциативного массива...) в Java году? Мой google-fu нашел пару примеров, но есть ли стандартный способ сделать это?

И есть ли способ заполнить таблицу списком пар ключ- > значение без отдельного вызова метода add для объекта для каждой пары?

java   hash   hashmap    

458   8   13:20, 15th August, 2020


Как синхронизировать историю браузера при использовании Ajax?

Я пишу простое приложение для фотоальбома, используя ASP.NET Ajax.
Приложение использует асинхронные вызовы Ajax для предварительной загрузки следующей фотографии в альбом, не изменяя URL в браузере.

Проблема заключается в том, что когда пользователь нажимает кнопку Назад в браузере, приложение не возвращается к предыдущей фотографии, а переходит на домашнюю страницу приложения.

Есть ли способ обмануть браузер, чтобы добавить каждый вызов Ajax в историю просмотров?

javascript   asp.net   ajax   hashchange    

448   8   10:30, 14th August, 2020