Рубрика «hash»

Индексы — важнейший инструмент оптимизации запросов в базах данных. В PostgreSQL одним из вариантов является хеш-индекс. В отличие от B-tree, он работает исключительно с операциями равенства (=) и использует бакеты для хранения ссылок на строки таблицы. Давайте разберёмся, как PostgreSQL управляет этими бакетами, какие особенности у хеш-индекса и в каких случаях его применение оправдано.

Что такое бакеты в хеш-индексе PostgreSQL?

При создании хеш-индекса PostgreSQL применяет хеш-функцию к каждому значению индексируемого столбца. Результат хеширования определяет, в какой бакет (bucket) попадёт запись.

📌 Читать полностью »

#записки_на_полях

Замечена интересная особенность в Python: множества с "малыми" числами печатаются по возрастанию:

рис. 1

рис. 1

Хотя, казалось бы, сет должен печатать каждый раз вразнобой, ибо является неупорядоченной коллекцией. Но, на самом деле, set никому ничего не должен :-) Я порылась в нескольких статьях и документации и на своем уровне (червяка) вот что поняла:

Читать полностью »

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

const verificationHash = SHA256(...fileContent);

И отправить хэш получателю, чтобы он мог проверить, что получил именно то, что отправлялось:

const receivedFileHash = SHA256(...receivedFileContent);

if (receivedFileHash === verificationHash) {
    // Всё хорошо, хэши совпадают
} else {
    // Внимание! Весь файл или его часть были изменены
}

Читать полностью »

Атака на String.hashCode: прообразы и коллизии - 1

Как-то раз мне понадобилось несколько наборов строк с коллизией по хеш-коду. То есть таких, чтобы значение String::hashCode() совпадало для всех строк в наборе.

Блуждание по интернету не дало результатов, примеров было мало и все они довольно однообразны. Поиск по словарям подарил забавную пару "javascript's".hashCode() == "monocle".hashCode(), но практической пользы не принёс. Полный перебор не рассматривался в виду скорой тепловой смерти вселенной.

Тот самый случай, когда проще сделать всё самому. Стандартная хеш-функция строки в Java считается криптографически нестойкой, так что знаний из школьного курса математики должно быть достаточно.

Читать полностью »

Flutter: Все способы защиты данных - 1

Вступление

Читать полностью »

Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах посвященных архитектуре ПО.

Помимо преподавания, как вы могли заметить, я занимаюсь написанием авторского материала для блога OTUS на хабре и сегодняшнюю статью хочу посвятить запуску нового потока курса «Алгоритмы для разработчиков».


Введение

Хеш-таблицы (HashMap) наравне с динамическими массивами являются самыми популярными структурами данных, применяемыми в production'е, поэтому очень часто можно услышать вопросы на собеседованиях касаемо их предназначения, особенностей их внутреннего устройства, связанных с ними алгоритмов. Данная структура данных является классической и встречается не только в Java, но и во многих других языках программирования.
Читать полностью »

В рамках данной статьи мы поговорим о концепции MAST и ее применении в протоколе Биткоин. Мы рассмотрим свойства, которых позволяет добиться MAST, а также пользу от его применения. Статья будет интересна читателям, которые увлекаются протоколом Биткоина и другими инновационными платежными системами. Этой теме также посвящена отдельная лекция в рамках онлайн-курса по Blockchain “MAST в Биткоине”.

Концепция MAST подразумевает использование деревьев Меркла и абстрактных синтаксических деревьев, чтобы задавать условия траты монет на выходах транзакций. Рассмотрим по порядку, как это устроено.
Читать полностью »

В статье я поделюсь личным опытом разработки и реализации “волшебных ссылок”. Расскажу зачем они нужны в нашем проекте, как функционируют и в конце даже всплакну над тем, что отсутствие такого функционала в больших системах используемых мною заставляет меня гневно рвать на себе волосы.

Код будет только в одном месте, т.к. основная цель статьи — рассказать про саму идею, а не показать то, насколько красив код.

Magic link или история о том, как мы упростили жизнь пользователю - 1
Читать полностью »

Кража NTLM через PDF - 1
Прошло всего несколько дней после того, как было объявлено, что злоумышленники могут использовать уязвимость в MS Outlook, используя OLE, чтобы украсть NTLM-хэш пользователей Windows.

Исследовательская группа Check Point обнаружила, что утечка дайджеста NTLM возможна и с помощью файлов PDF. Атака возможна без какого-либо взаимодействия с пользователем — достаточно просто открыть файл.
Читать полностью »

Чуть менее чем самая быстрая, переносимая, 64-битная хэш-функция, с достойным качеством.
Да, вжух и в дамки, примерно так. Читаем дальше?

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js