170 похожих чатов

Это нормально что BcryptNet/bcrypt.net конкатенирует соль с хешем просто и

всё? и то что у него соль длинной 29 всегда тоже ок? на первой строке соль + ее длина, на 2 и 3 хеш пароля на основании соли полученный

10 ответов

14 просмотров

У тебя соль в bcrypt - это 128 бит = 16 байт = ceil(16*4/3) = 22 символа в base64 перед этими 22 символами соли идет заголовок $2a$11$ - здесь 2a - версия алгоритма, 11 - количество раундов далее твой пароль, вместе с солью и числом раундов передается в собственно алгоритм bcrypt - и на выходе получается хеш в 192 бита = 24 байта = 31 символ в base64 - вот этот хвост добавляется к 29 битов параметризации - и на выходе получается 60-символьная строка Так что в bcrypt то все нормально Что ненормально - это задавать такие вопросы. Если это вот все неочевидно - то лезть в bcrypt довольно опасно- можно организовать дырень на ровном месте. Особенно в фиг знает чью имплементацию

flexxxer-flexxxer Автор вопроса
Evgeniy Alexandrov
У тебя соль в bcrypt - это 128 бит = 16 байт = cei...

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

flexxxer flexxxer
на счет хз чьей имплементации - это тупо топ 1 нав...

Да, соль раскрывать безопасно. Соль, которую нельзя раскрывать (и нужно отдельно хранить от хеша) - ее обычно специально обозначают секретной (secret salt) или перцем (pepper). Основная задача соли - усложнить взлом при массовом сливе (утекло N хешей - если у каждого разная соль, то для взлома нужно N таблиц предпросчитать вместо одной) Популярность не гарантирует корректность/отсутствие багов/гонок. Лет шесть назад смотрел 4 самых популярных реализации scrypt под дотнет - так все с багами были

Evgeniy Alexandrov
У тебя соль в bcrypt - это 128 бит = 16 байт = cei...

Чем людям pbkdf2 не угодил, имплементацию которого можно ещё и безвозмездно стырить с исходников asp net core identity

Roman Bukin
Чем людям pbkdf2 не угодил, имплементацию которого...

Не требует много памяти, следовательно относительно дёшево перебирать. Про практическую безопасность ничего не скажу. Мы как-то сразу с SHA-1 переехали на bcrypt и сидим =)

Ἀρίσταρχ Zagorodnikov
Не требует много памяти, следовательно относительн...

Ну поставь ты рандомизированное число итераций 20к-25к и моль рандомную для каждого хэша

Etki
Как связана память и дешевизна перебора?

Хз где там дешевизна, каждый последующий шаг зависит от результатов предыдущего, итераций дофига

Etki
Как связана память и дешевизна перебора?

С параллелизуемостью. Большое требования к памяти портят типовое соотношение между ядрами и ОЗУ, не позволяют эффективно использовать data-parallel системы типа GPU.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта