Victor
так в го тоже
ну, так скажем, можно и не придерживаться такого формата. То что gofmt так форматирует, это другой вопрос )
Emin Zalaev
датасасанисты
Evgeny
датасайентологи
Илья
Какой алгоритм ассиметричного шифрования быстрее RSA и есть в стандартной библиотеке го? копал в сторону ECDH, но proposal с пакетом для него только приняли
Илья
хочу сделать шифрование пароля при регистрации, или забить и надеяться на https?
Rostislav
а чем https то плох?
Rostislav
интернет на нем работает и отлично все
Rostislav
хочу сделать шифрование пароля при регистрации, или забить и надеяться на https?
и что значит шифрование пароля? Ты его на сервер передаешь?
Илья
и что значит шифрование пароля? Ты его на сервер передаешь?
1) апи сервера возвращает публичный ключ 2) клиент перед отправкой запроса на логин/регистрацию шифрует пароль 3) сервер расшифровывает
Rostislav
1) апи сервера возвращает публичный ключ 2) клиент перед отправкой запроса на логин/регистрацию шифрует пароль 3) сервер расшифровывает
Ну у тебя во-первых https может всё это делать. Но более того, ты ведь можешь не передавать пароль. Вычислять хэш на фронте и передавать уже сам хэш и сравнивать его с тем, который хранится в бд - не знаю наверняка, но вроде так всегда это и работает
Rostislav
Ну по такой логике можно и публичный ключ перехватить на пути от сервера к тебе и заменить на свой
Rostislav
Просто логика какая. Если банки доверяют https, то мы тоже можем
Юра (Юрий Александрович)
Тут нужно отметить себе, что "бытовые" системы безопасности, такие как https, очень-очень хороши. И, если мы обоснованно предполагаем, что вышли за пределы их надежности, значит мы работаем с чем-то невообразимо безопасным. А там сразу ассортимент угроз расширяется на порядок, и такие системы проектируются, реализуются и эксплуатируются совершенно по-другому.
Юра (Юрий Александрович)
А если мы необоснованно предполагаем, что вышли за пределы надежности "бытовых" систем, то надо просто вернуться назад в рамки бытовых систем и спокойно (и грамотно) реализовывать свой продукт.
Yura
Всем привет. Вопросик: в метод приходит параметр с типом any. Как я могу определить его тип?
Илья
или switch v := i.(type) {} если хочешь сразу переменную получить
Yura
Супер, спасибо большое
Dmitry
Привет ребят подскажите как работать с го приходит json { "key": "value", "key1": "value", "key2": "value", "key3": "value", } в go прописываю var msg map[string]interface{} fmt.Println(json.Unmarshal([]byte(jsonMsg), &msg)) как мне дальше работать как с ассоциативным массивом могу ли я пройти его по порядку и выполнить необходимые мне операции ?
Dmitry
var msg map[string]interface{} потому что динамический массив я изначально не могу задать строгую структуру
Emin Zalaev
У тебя key1, key2.. можеть быть одинаковым?
Dmitry
нет
Emin Zalaev
Ну по мапе можно про помощи range пройтись
Emin Zalaev
for i,el := range msg { }
Dmitry
https://go.dev/play/p/9A57hlGaXtp
Dmitry
ща попробую
Emin Zalaev
i это key, el это value
Dmitry
i это key, el это value
я не такой дуб спасибо )
Emin Zalaev
не ну вдруг не встречал ни разу
Emin Zalaev
я вот в чат по жсу кринжа наваливал
Emin Zalaev
чсвшные ублюдки
Dmitry
не надо стесняться )
Emin Zalaev
не надо стесняться )
да я не стеснялся просто ахуевшие челы сидят
Dmitry
да я не стеснялся просто ахуевшие челы сидят
https://go.dev/play/p/qpAal3DYkqd вот чет не заводится
Emin Zalaev
ты ретурн ставишь
Emin Zalaev
в мейне
Emin Zalaev
а он ничего не возвращает
Emin Zalaev
fmt.Println(err)
Emin Zalaev
вместо return err
Dmitry
так значит он в ошибку вошел
Emin Zalaev
https://go.dev/play/p/OttXzVr1NNE
Dmitry
или что-то не так понял ?
Dmitry
а че он в ошибку зашел я не пон
Emin Zalaev
https://go.dev/play/p/3s4eA60oIEN
Emin Zalaev
ну или так
Emin Zalaev
так значит он в ошибку вошел
нет, он не скомпилился даже
Emin Zalaev
и ошибка вылетела на этапе компиляции а не выполнения
Dmitry
аааа
Emin Zalaev
это как что-то типа ты инициализировал новую переменную и не использовал ее
Emin Zalaev
хоть в условии ошибки ее инициализируй, это не значит, что условие выполнилось
max
Вопрос базового уровня по пакетам. Я не могу запустить файл не из GOPATH, который содержит импорт написанного мной пакета, скомпилированного в GOPATH, но отсутствующего в GOROOT?
Юра (Юрий Александрович)
Вопрос базового уровня по пакетам. Я не могу запустить файл не из GOPATH, который содержит импорт написанного мной пакета, скомпилированного в GOPATH, но отсутствующего в GOROOT?
Что понимается под "скомпилированным пакетом"? Исполнимые файлы, скомпилированные Go, не связываются друг с другом наподобие .dll в Windows. Все внешние зависимости проекта импортируются в виде исходников и вкомпилируются в тот самый исполнимый файл, который получается на выходе. Даже если исполнимых файлов получается несколько, они не связаны друг с другом напрямую и могут запускаться независимо.
Юра (Юрий Александрович)
А т.к. скомпилированный исполнимый файл содержит в себе все необходимое для его запуска, у него вообще нет никаких статических зависимостей, ему все равно, где он лежит, и где лежат файлы Go, проекта и т.д.
max
Что понимается под "скомпилированным пакетом"? Исполнимые файлы, скомпилированные Go, не связываются друг с другом наподобие .dll в Windows. Все внешние зависимости проекта импортируются в виде исходников и вкомпилируются в тот самый исполнимый файл, который получается на выходе. Даже если исполнимых файлов получается несколько, они не связаны друг с другом напрямую и могут запускаться независимо.
>Что понимается под "скомпилированным пакетом Пакет в $GOPAT/bin, которая появилась в результате go install $GOPATH/src/путь_к_директории Я так понимаю, если сделал это, то go run из любого места с обращением к этому пакету должен отработать. А у меня кидал ошибку package <имя> is not in GOROOT (/usr/local/go/src/<имя>
Юра (Юрий Александрович)
Я не знаю (
max
он появится при go install github.com/.....
я смотрю, и вижу что он уже появился, т.е. было достаточно go install <локальный путь>. Непонятно, почему он не подцепляется из другого места при go run
Илья
я вручную в PATH добавлял путь для go install, может из-за этого не работает
Shohrukh
Привет всем
Shohrukh
Ребят в лс можете помочь кто нибудь пожалуйста
David
Подскажите пожалуйста, чем отличаются эти 2 объявления? type opFuncType func(int,int) int type opFuncType struct {result func(int,int) int}
Rostislav
Или о чем вопрос?
David
Или о чем вопрос?
Не понмаю вообще зачем нужна такая конструкция
Rostislav
Не понмаю вообще зачем нужна такая конструкция
вторая конструкция - это обычная структура. Структуры я думаю понятно зачем нужны. Первая конструкция это - псевдоним для типа. То есть вместо: func(int,int) int позволяет писать: opFuncType
David
ну тем, что разные типы. Первы функция, второй структура
Почему тогда не просто func opFuncType(a int, b int) int {} ?
Rostislav
ой нет. Я неправильно написал. Первая конструкция - это именно создание нового типа (а не псевдоним)
David
Так а чем обычная структура не угодила? Структура это ведь набор типов как раз
Vladislav
и то и то создание нового типа
Vladislav
Так а чем обычная структура не угодила? Структура это ведь набор типов как раз
если нужно несколько значений в одном типе определить, юзают структуру
Vladislav
структура из одного значения в принципе более-менее эквивалентна просто самому значению
Vladislav
если в рассчёт не брать поведение полей и тегов к ним