🏁Александр
🙂
🏁Александр
имя ему...
🏁Александр
легион
🏁Александр
ой не ту книгу открыл
🏁Александр
ARGON2
🏁Александр
Argon2 работает по следующему принципу:
1. Производится хеширование пароля с использованием хеш-функции Blake2b.
2. Результат хеширования записывается в блоки памяти.
3. Блоки памяти преобразуются с использованием функции сжатия {\displaystyle G} G
4. В результате работы алгоритма генерируется ключ (англ. Tag).
🏁Александр
* три страницы математики, читать на вики *
🏁Александр
самое важно, не оставить соль по дефолту - saltsalt
🏁Александр
это будет failfail
Kirill
я просто оставлю это здесь: https://dev.to/justyntemme/how-to-dos-yourself-with-argon2-20a4
🏁Александр
🏁Александр
где я, а где они 🙂
🏁Александр
но я ограничу туда выход
🏁Александр
на всякий
Daniel
Kirill
При чем тут они?
md4 + как можно меньшее количество возможных комбинаций — идеально же для банков, чё
Vladimir
Длинный и очень длинный пароль защищает разве что от брутфорса и больше, по сути, ни от чего. А 2fa (особенно аппаратный токен, а не письмо на почту) поможет и в случае утечки/компрометации. На мой взгляд, лучше чем 2fa, будет только 3fa (и дальше)) ) и обязательное подтверждение критических операций также с помощью 2fa. Это я о защите пользователя, а не данных на своих серверах, а то создалось впечатление, что каждый о своем)
Leonid
люди, есть очень странное поведение. если кто-то что-то такое видел, то скажуте куда копать.
дано: если модуль на го, работающий с postgres 9.5. работа происходил в 99% случаев в фоновом процессе, который запускается раз в минуту.
время от времени ( от 5 минут до часа) процесс соединения модуля и базы (на сервере, где бежит postgres) вырастает ровно на 264 байта.
в pg_stat_activity idle последний запрос INSERT, который вызывает ФП. В 95% случаев он откатывается из-за uniq index.
кто-то что-то подобное видел? куда копать?
Michael
от забора до обеда копать
Michael
в чём ещё вопрос?
Мерль
Leonid
так в модуле все чисто
Leonid
уже натравиливал. все очищается, ничего не подвисает
Leonid
но процесс соединения на стороне БД растет
Andrei 🦉
Zhenja
Коллеги, имеется JSON вида:
[{"Zero":0},{"One":1},{"Two":2}]
т.е. массив в каждом элементе которого свое значение. Ключи в разных элементах не повторяются и точно в каждом элементе только одно значение. Как это можно распарсить в структуру вида:
type T struct {
Zero int
One int
Two int
}
Aleksandr
написанием своего анмаршаллера
Oleg
я бы даже сказал регекспой
Aleksandr
это для извращенцев
Oleg
ой та ладно
Leonid
Oleg
Leonid
Leonid
Да вот такие же ощущения:-(
Oleg
(
Илья
Zhenja
* порядок элементов не гарантирован
Zhenja
ну и через массив структур я сделал. А потом в цикле перегоняю в структуру) Но думал есть вариант проще
Andrei 🦉
Andrei 🦉
ты пока остановился на варианте с копипастом
Илья
Zhenja
задача анмаршалить в структуру (не в массив), чтобы далее в коде можно было просто получить любое значение, например T.One, не перебирая массив и не искать, в каком из элементов не nil поле One
Илья
массив мапок в структуру?
Илья
тогда кастомный анмаршаллер или ваш вариант
Илья
это ж лютый изврат изначально
Zhenja
да. Но мне из вне приходит такой JSON, что поделать
Aliaksandr
Oleg
почему обычный анмаршал в map[string]interface{} уже не работает?
Oleg
Илья
работает, но производит много ненужных операций
Roman
Привет всем
А кто в чем конфиги хранит?
Требуется сохранять определенные данные, название проекта, название папки с тестами (например), чтобы при следующем запуске программы она уже брала эти данные и выполняла некоторые действия.
Думал в сторону yml, но решил на всякий случай спросить)
И подскажите сразу либу, а то на awesome-go их много, по звездочкам выбирать?
Roman
скорей всего файл будет плоский по структуре и максимум содержать ключей 20-30
Zhenja
json и либа encoding/json)
Илья
yaml/ini/toml по желанию
Roman
Илья
viper
Илья
ест все подряд
Илья
+ можно еще из env/флагами перекрывать значения
Roman
viper
вот тоже на него смотрел, про томл не знал, выглядит удобно, спасибо
Zhenja
спасибо. Только у меня еще и значения разных типов) Не парьтесь, я уже сделал как сделал и оно работает. Пример работы с fastjson сохраню на будущее 👍
Zhenja
type T struct {
Zero *int
One *int
Two *int
}
arr := []T{}
item := T{}
json.Unmarshall(`[{"Zero":0},{"One":1},{"Two":2}]`, &arr)
for _,x := range arr {
if x.Zero != nil {
item.Zero = x.Zero
}
if x.One != nil {
item.One = x.One
}
if x.Two != nil {
item.Two = x.Two
}
}
как-то так)
Kirill
Zhenja
своё. Делал кто-то из смежного отдела
Илья
Aliaksandr
Kirill
Aliaksandr
понятно :) тогда в моих примерах кода достаточно заменить map[string]int на T и внутри вложенного цикла добавить switch по имени поля
Zhenja
и Ваш пример не будет особо отличаться от моего решения, кроме того, что добавит еще зависимость fastjson?
Aliaksandr
ага :) еще будет работать раз в 15 быстрее. Но если вы не парсите json сотнями мегабайт в секунду, то это не критично
Anonymous
Всем привет, кто нибудь работал с hugo?
Alexey
https://golang-moscow.timepad.ru/event/765492/
Sebor▂▅▇█▓▒░
Alexey
Я руками проверяю, что люди могут написать фамилию и имя в поля «фамилия» и «имя» соответсвенно, а так же как в паспорте (на русском языке)
Alexey
(Десятки людей не могут)