MySQL столбец для шифрования - PullRequest
0 голосов
/ 02 февраля 2012

Мне нужно создать небольшое частное приложение. Я хочу сохранить часть личной информации (это внутренний номер учетной записи, а не SSN или что-то вроде сверхчувствительного) в таблице, которая его «зашифровывает».

Я помещаю шифры в кавычки, потому что хочу, чтобы данные сохранялись следующим образом:

  • хранится таким образом, что, если кто-то физически просматривает данные таблицы, часть информации не будет заметна
  • хранится таким образом, что, если кто-то выполнил простой запрос, выбор получаемых данных не будет заметен
  • все же, когда я пишу свой собственный запрос выбора, я все еще могу расшифровать данные и представить их в удобочитаемом виде

Другими словами, я хочу, чтобы он только умеренно зашифровывался, чтобы я все еще мог его расшифровать и прочитать. Я знаю, что хеширование MD5 блокирует значение, которое когда-либо читалось. Я хочу чего-то меньшего.

Спасибо

Ответы [ 3 ]

3 голосов
/ 02 февраля 2012

MD5 - это НЕ шифрование.Это хэширование.

Если вы не возражаете, передавая ключ шифрования в каждом запросе, просто иметь это в MySQL:

SELECT AES_DECRYPT(crypted_field, 'crypt key goes here') AS decrypted

и

INSERT INTO yourtable (crypted) VALUES (AES_ENCRYPT('some string', 'crypt key'));
2 голосов
/ 02 февраля 2012

MySQL обеспечивает шифрование DES и AES .Вам нужно будет разобраться с управлением ключами, но алгоритмы шифрования доступны.

2 голосов
/ 02 февраля 2012

Я думаю, что вы ищете "Симметричное шифрование ключа".Вы можете использовать ключ для шифрования ваших данных и тот же ключ для расшифровки по мере необходимости (в отличие от хеш-функции, которая, как вы сказали, делает исходные данные невосстановимыми).В MySQL я бы взглянул на функции AES_Encrypt и AES_Decrypt. .Надеюсь, это направит вас в правильном направлении!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...