Публикации по теме 'hashing'
Хеш-функции для интеллектуального анализа данных
Если вы работаете в технической сфере, скорее всего, вы слышали о хэш-функциях. Они широко используются в криптографии и структурах данных - возможно, вы встречали их в криптографии с открытым ключом или при изучении хеш-таблиц. Нетехнические люди, вероятно, слышали о них в контексте добычи биткойнов.
Оказывается, хеш-функции невероятно полезны для многих вещей, включая интеллектуальный анализ данных и машинное обучение. Этот пост предназначен для быстрого знакомства с видами..
Хеширование и равенство в Python
TL;DR
Не переопределяйте __hash__ и __eq__ для принудительного хеширования объектов. Вместо этого используйте неизменяемые объекты.
Обзор
Словари и наборы - одни из наиболее распространенных структур данных, которые интенсивно используются для O(1) времени поиска. Этот O(1) вид обеспечивается хэш-функциями , которые имеют следующие свойства:
Если a == b , то hash(a) == hash(b) Если hash(a) == hash(b) , то a может равняться b Если hash(a) != hash(b) , то..
Хеширование — Введение
Недавно я работал над курсом Coursera Data Structures. На этой неделе моей задачей было узнать о хешировании.
Хеширование широко используется в программировании. Некоторые примеры:
Языки программирования — необходимо хранить специальные слова, такие как for, if, while, int, String, etc Файловые системы — отображаются через хеш-таблицу Пароли — шифрование и проверка Оптимизация хранилища для поставщиков облачных хранилищ, таких как Dropbox/Google Drive и т. д.
Хорошим..
Вставить Удалить GetRandom O(1)
Разработайте структуру данных, которая поддерживает все последующие операции за среднее O(1) время.
insert(val) : вставляет элемент val в набор, если он еще не присутствует. remove(val) : Удаляет элемент val из набора, если он присутствует. getRandom : возвращает случайный элемент из текущего набора элементов. Каждый элемент должен иметь одинаковую вероятность быть возвращенным.
Пример:
// Init an empty set.
RandomizedSet randomSet = new RandomizedSet();
// Inserts 1 to..
Как обмануть своих коллег-разработчиков и иметь словари Python с неуникальными ключами!
Поймите, как объекты Python ведут себя как хешированные ключи словаря.
Вы можете думать о словарях Python как о парах ключ/значение, где ключи должны быть уникальными.
Если ключи должны быть уникальными, как мне создать следующий словарь?
{'Apple': 1, 'Apple': 2, 'Apple': 3}
Это тема данной публикации, но сначала давайте разберемся, как работают словари и их ключи.
Ключи должны быть хешируемыми
Словари предназначены для ускорения поиска значения на основе его ключа. Вот..
Общие проблемы безопасности в веб-приложениях. Часть 1
Йо Йо, ребята.
Сегодня я хочу поговорить о некоторых распространенных проблемах безопасности в современных веб-приложениях и о лучших методах их устранения. Я надеюсь, что эта статья поможет разработчикам понять некоторые проблемы, которые встречаются в 80–85% приложений.
Давайте обсудим некоторые возможные уязвимости ...
Хеширование паролей
Многие люди используют MD5, SHA512 для хеширования паролей. Не делай этого больше никогда! Они долгое время считались устаревшими. Что ж,..
Веселые времена с WebCrypto - Часть 1: PBKDF2
Обновление: Часть 2 вышла!
На этой неделе мы с моим товарищем по команде Рамом Вальским получили уникальное задание: преобразовать модуль, связанный с криптографией, который мы написали на Node, в JavaScript с помощью WebCrypto. Поскольку мы с Рамом любим все, что связано с криптовалютой, наша реакция была следующей:
Краткое введение в PBKDF2
PBKDF2 (функция получения ключа на основе пароля), как следует из названия, представляет собой функцию, используемую для получения..