Я нахожусь в ситуации, когда у меня есть набор пользователей на сайте, у которых все были сохранены имена пользователей и пароли, которые позволяют им автоматически обращаться к сторонним службам через SOAP. Идея состоит в том, что каждому пользователю нужно только войти на главный сайт, чтобы получить доступ к нескольким услугам, используя их соответствующую сохраненную информацию пользователя для каждой службы. Я чувствую, что такие данные должны быть зашифрованы в моей базе данных при их сохранении и затем автоматически дешифрованы, когда они передаются функции php / SOAP, когда пользователю необходимо получить доступ к данной службе. Какой был бы лучший способ сделать это?
Я взглянул на AES_ENCRYPT, но кажется, что шифрование и дешифрование используют ключ, который должен быть сохранен в моем коде, в виде простого текста … что не похоже на самую яркую вещь , Во всяком случае, это мой первый тайм-аут на что-то вроде этого (если вы не могли сказать); если бы вы могли дать мне несколько указаний о том, как я должен это сделать, я бы очень признателен.
Спасибо заранее
Вы столкнулись с самой большой проблемой шифрования данных в базе данных:
➽ Где хранить ключ?
Шифрование не может решить проблему защиты данных, оно может «сконцентрироваться» только на ключе. Где бы вы ни хранили ключ, ваше приложение должно иметь возможность расшифровать данные, поэтому может сделать атакующего. Есть два возможных решения этой проблемы, о которых я знаю:
PS Я бы рекомендовал зашифровать данные перед их хранением в базе данных, потому что MySQL AES_ENCRYPT использует режим ECB без IV. Это позволяет искать определенное значение, но менее безопасно (я уверен, что вы не хотите искать по паролю).