Или: Как хранить зашифрованные данные для группы пользователей?
Признаюсь, это глупый вопрос, личный ключ ограничен только одним человеком, как уже подразумевается в этом термине. Но у меня есть следующий сценарий:
Пользователь Том вводит данные, которые должны храниться в зашифрованном виде в базе данных. Пользователь решает, что хочет сделать эту информацию доступной для Джима и Боба. Пользователи Джон и Джейн не должны иметь возможность расшифровать его. Конечно, также не пользователю Тим, который взломал сервер и имеет доступ к зашифрованным данным и сценариям, которые выполняют шифрование / дешифрование.
Я думаю, что подход с открытым ключом / закрытым ключом с помощью PHP openssl_public_encrypt здесь не сработает, так как два пользователя должны иметь этот "закрытый" ключ для расшифровки данных.
Полагаю, это довольно общий вопрос, но, если он важен, это должно быть сделано на PHP (и, возможно, MySQL).