Как я могу изменить ключ шифрования и при этом иметь возможность расшифровывать старые данные? - PullRequest
0 голосов
/ 27 сентября 2011

Мне нужно создать симметричный ключ в C # и использовать его для шифрования строки, которую я в конечном итоге буду хранить в базе данных. Я бы использовал механизм AES в .Net для достижения этой цели. Я бы использовал тот же ключ для расшифровки зашифрованных данных.

Теперь мое требование - если у меня есть механизм для изменения ключа. Как я могу гарантировать, что смогу использовать только что созданный ключ для расшифровки строк, зашифрованных старым или устаревшим ключом?

1 Ответ

1 голос
/ 27 сентября 2011

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

EDIT -

Согласно вашему комментарию, Key_Source и Identity_Value создают ключ, который никогда не изменяется, затем шифруют этот ключ и регулярно меняют этот внешний слой. Я бы не рекомендовал реализовывать это самостоятельно, поскольку очень трудно правильно защитить этот мастер-ключ, и просто использовать систему ключей, встроенную в MS SQL, если это база данных, которую вы используете.

...