Извините, но ваш вопрос не содержит достаточно информации, чтобы дать хороший ответ на ваш вопрос. Вы должны больше рассказать об архитектуре вашего приложения и структуре данных, которые оно использовало.
Является ли приложение службой Windows или приложением EXE, запущенным в контексте пользователя? Кому принадлежат данные, которые вы хотите зашифровать: приложение, пользователь? Распределяются ли данные между пользователями? Вы сохраняете данные на локальном жестком диске или на сервере (на смешанном)? Вы сохраняете данные как часть профиля пользователя?
Самым важным является вопрос: где вы планируете держать клавишу ? Проблема в том, что ключ похож на ключ от вашего дома: вы хотите, чтобы только вы (или ваши близкие друзья) имели доступ к ключу, но никто другой. Тем не менее, часто можно найти ключ где-то рядом с замком: под ковриком, лежащим у двери. Один делает это, потому что есть другая проблема: что делать, если ключ будет утерян? Все вопросы являются частью «управления ключами».
DPAPI старше 10 лет. Преимущество этого метода заключается в том, что он помогает сохранить ключ, принадлежащий пользователю, так что пользователь автоматически сохраняет ключ, и зашифрованные данные могут быть расшифрованы на другом компьютере в сети в случае использования перемещаемых профилей . Если у вас те же требования, DPAPI может дать вам преимущества.
Извините за столь общий ответ, но, по моему мнению, ключом к решению вашей проблемы является не использование того или иного API. Самое главное это управление ключами . Прежде чем начинать шифровать данные приложения, у вас должно быть четкое представление об управлении ключами вашего приложения, в том числе о действиях, связанных с некоторыми типичными проблемами поддержки.