#php #mysql #sql #encryption #aes
#php #mysql #sql #шифрование #aes
Вопрос:
У меня есть много пользовательских данных, которые я буду хранить на совместимом сервере базы данных.
Прямо сейчас существует около 10 различных итераций данных, которые я буду хранить, но со временем их может быть сотни.
Данные обычно выглядят так, плюс-минус 50 других строк данных:
ID INT (10)
Name VARCHAR (40)
Address VARCHAR (65)
City VARCHAR (40)
State VARCHAR (2)
Zip VARCHAR (5)
Birthdate INT (11)
SSN VARCHAR (11)
etc.
Мой вопрос не обязательно о шифровании данных, но о наиболее практичном способе хранения и извлечения данных.
Прямо сейчас у меня есть 10 разных таблиц для 10 разных классов данных, которые я храню. В ближайшие 6 месяцев это может вырасти до 100 или даже 1000 различных таблиц.
-
Было бы лучшей идеей сохранить все эти данные в массиве JSON и сохранить их в blob, поскольку строки данных не всегда будут одинаковыми?
-
Или я должен хранить все данные в отдельных столбцах и шифровать столбцы отдельно?
-
Или что-то совсем другое
Комментарии:
1. Вам нужно выполнить поиск по каким-либо данным?
2. Я думаю, вам следует пересмотреть свой дизайн, если вы действительно рассчитываете вырасти с 10 таблиц до 100 или 1000 различных таблиц.
3. @AndrewBarber Нет, просто извлеките. Поскольку он будет зашифрован, маловероятно, что я смогу выполнить поиск в любом случае
4. @Ray разным компаниям требуется разная таблица, потому что они хранят совершенно разную информацию. Если у вас есть какие-либо идеи, пожалуйста, дайте мне знать
5. @bryan Если вы хотите хранить
everything
зашифрованные данные, и вы не собираетесь каким-либо образом обращаться к ним в зависимости от отношений, и вам не нужна согласованность между строками, определяющими, какие столбцы используются (кроме, возможно, идентификатора пользователя с первичным ключом), вы могли бы использовать простой столбец 2, идентификатор и таблицу ДАННЫХ. Может быть, третий столбец, например, company_id. На самом деле это звучит как возможный вариант для MongoDB или Amazon Dynamo вместо Mysql — если только остальные ваши таблицы не используются более реляционно.
Ответ №1:
Было бы лучшей идеей сохранить все эти данные в массиве JSON и сохранить их в blob, поскольку строки данных не всегда будут одинаковыми?
Если вы столкнулись с проблемой, связанной с нереляционными структурами базы данных, тогда используйте нереляционную базу данных. Или JSON-функции PostgreSQL. Это, конечно, само по себе не имеет практически никакого отношения к шифрованию.
Или я должен хранить все данные в отдельных столбцах и шифровать столбцы отдельно?
Независимо от того, сохраняете ли вы эти данные в столбце или переносите их в поле JSON, в конечном итоге вы будете шифровать столбцы независимо.
Если вы хотите облегчить себе жизнь, CipherSweet упрощает шифрование с возможностью поиска (и, как следствие, упрощает управление ключами и шифрование полей независимо от того, нужно ли вам что-либо искать).