Как лучше хранить "секретную" инфу в базе
Надо отличасть и явно ввести аутентификация (ху из ху), авторизация (ху может что), и шифрование содержимого. Аутентификация уже есть? Если нет, то все остальное нет смысла обсуждать. Авторизация определяет какой ресурс кому доступен для каких операций. Шифрование напрямую не связано с аутентификацией (логином) - там могут быть свои пароли, ключи и т.п. Например, в protonmail раньше был отдельный пароль для шифрования.
Тут важно решить, кто собственно управляет ресурсами. Если это центральный сервис, то он соответственно занимается авторизацией, т.е. решает кто что видит и может сделать. Если хочется скрыть от него содержимое, то паролями шифрования должен кто-то другой заниматься - либо другой сервис, либо p2p как-то.
Пока требования не определены что-то более конкретно сказать трудно.
Можно было бы хранить приватный ключ пользователя локально на машине, но как тогда показать эту инфу другим выбранным пользователям?
Это в сторону p2p, когда все клиенты сами (в обход сервера) управляют ключами шифрования. Главный сервис управляет зашифрованными данными, а шифрование происходит на клиентах, и они же управляют ключами.
Вроде телеграмм, что то подобное имеет. В какую сторону рыть? Пока еще вообще ничего не искал, только идея появилась о подобной проге.
В Телеграмме обычное e2e шифрование между двумя юзерами, т.е. клиенты договариваются о ключах без сервера. Но это другое, это не связано с ресурсами.