Вопросы с тегом «cryptography»

КРИПТОГРАФИЯ ДОЛЖНА БЫТЬ СВЯЗАНА С ПРОГРАММИРОВАНИЕМ. Криптография охватывает, помимо прочего, шифрование, хеширование и цифровые подписи. Вопросы о криптографии, не связанные напрямую с разработкой программного обеспечения, лучше задавать на сайте crypto.stackexchange.com.

1256
Как вы используете bcrypt для хеширования паролей в PHP?

Время от времени я слышу совет: «Используйте bcrypt для хранения паролей в PHP, правила bcrypt». А что есть bcrypt? PHP не предлагает никаких таких функций, Википедия болтает о утилите шифрования файлов, а поиски в Интернете показывают лишь несколько реализаций Blowfish на разных языках. Теперь...

509
Принципиальная разница между алгоритмами хеширования и шифрования

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

390
256-битное Java AES-шифрование на основе пароля

Мне нужно реализовать 256-битное шифрование AES, но все примеры, которые я нашел в Интернете, используют «KeyGenerator» для генерации 256-битного ключа, но я бы хотел использовать свой собственный пароль. Как я могу создать свой собственный ключ? Я попытался дополнить его до 256 бит, но затем я...

361
Как генерируются лицензионные ключи программного обеспечения?

Лицензионные ключи являются стандартом де-факто в качестве меры борьбы с пиратством. Честно говоря, это выглядит как (в) Security Through Obscurity , хотя я действительно не знаю, как генерируются лицензионные ключи. Что является хорошим (безопасным) примером генерации лицензионного ключа? Какой...

293
Является ли «двойное хеширование» паролем менее безопасным, чем однократное хеширование?

Является ли хеширование пароля дважды перед хранением более или менее безопасным, чем простое хеширование? То, о чем я говорю, делает это: $hashed_password = hash(hash($plaintext_password)); вместо этого: $hashed_password = hash($plaintext_password); Если это менее безопасно, можете ли вы дать...

269
Какой тип данных использовать для поля хешированного пароля и какой длины?

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

261
Можно ли расшифровать хеши MD5?

Кто-то сказал мне, что он видел программные системы, которые: восстановить зашифрованные пароли MD5 из других систем; расшифровать зашифрованные пароли и хранить пароли в базе данных системы, используя собственный алгоритм системы. Это возможно? Я думал, что было невозможно / невозможно...

250
Где вы храните свои соленые струны?

Я всегда использовал правильную строку соли для каждой записи при хешировании паролей для хранения базы данных. Для моих нужд хранение соли в БД рядом с хешированным паролем всегда работало нормально. Однако некоторые люди рекомендуют хранить соль отдельно от базы данных. Их аргумент заключается в...

230
Простейшее двустороннее шифрование с использованием PHP

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

220
Как соль пароля помогает против атаки радужной таблицы?

У меня возникли проблемы с пониманием назначения соли для пароля. Насколько я понимаю, основное использование - это препятствовать атаке радуги. Тем не менее, методы, которые я видел, чтобы реализовать это, похоже, не усложняют проблему. Я видел много уроков, предлагающих использовать соль...

202
Разница между java.util.Random и java.security.SecureRandom

Моя команда получила серверный код (на Java), который генерирует случайные токены, и у меня есть вопрос относительно того же самого - Назначение этих токенов довольно чувствительно - используется для идентификатора сеанса, ссылок для сброса пароля и т. Д. Поэтому они должны быть криптографически...

191
Почему простые числа важны в криптографии?

Одна вещь, которая всегда поражает меня как некриптографа: почему так важно использовать простые числа? Что делает их такими особенными в криптографии? У кого-нибудь есть простое краткое объяснение? (Я знаю, что есть много учебников для начинающих и что прикладная криптография - это Библия, но, как...

162
Солить ваш пароль: лучшие практики?

Мне всегда было любопытно ... Что лучше при добавлении пароля для хеширования: префикс или постфикс? Зачем? Или это имеет значение, пока ты солишь? Объяснение: мы все (будем надеяться) уже знаем, что мы должны запечатать пароль перед тем, как хешировать его для хранения в базе данных [...

148
Безопасен ли SHA-1 для хранения паролей?

Вывод: SHA-1 столь же безопасен, как и все остальные, от атак с прообразом, однако его легко вычислить, что означает, что его проще монтировать с помощью грубой силы или атаки по словарю. (То же самое верно для преемников, таких как SHA-256.) В зависимости от обстоятельств, хэш-функция, которая...

145
Почему XOR является стандартным способом объединения хэшей?

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

144
Почему при подтверждении SSL возникает исключение «Не удалось создать пару ключей DH»?

Когда я устанавливаю SSL-соединение с некоторыми серверами IRC (но не с другими - предположительно из-за предпочтительного метода шифрования сервера), я получаю следующее исключение: Caused by: java.lang.RuntimeException: Could not generate DH keypair at...

140
Какую криптографическую хеш-функцию мне выбрать?

Платформа .NET поставляется с 6 различными алгоритмами хеширования: MD5: 16 байт (время хеширования 500 МБ: 1462 мс) SHA-1: 20 байтов (1644 мс) SHA256: 32 байта (5618 мс) SHA384: 48 байтов (3839 мс) SHA512: 64 байта (3820 мс) RIPEMD: 20 байт (7066 мс) Каждая из этих функций выполняется по-разному;...