Я написал этот ответ ранее, но потом пересмотрел, так как раньше не слышал о DPAPI.Однако, после некоторого дальнейшего рассмотрения, я хотел бы предложить следующее мнение.Важным предисловием здесь является то, что все зависит от ваших потребностей.На ум приходят две противоречивые возможности:
Вы хотите предложить своему пользователю полную защиту и шифрование, которому пользователь может доверять, только он сможет расшифровать, независимо от того,обстоятельства.
Вы являетесь ИТ-менеджером предприятия, и у вас все сотрудники на коротком поводке.Вы хотите, чтобы они шифровали бизнес-данные как часть своего рабочего процесса, чтобы они не могли видеть данные друг друга, но администраторы могут с радостью читать данные каждого.
Если вы находитесь в ситуации (2), затем прекратите чтение и перейдите к DPAPI, который хорошо подходит для этого случая.Если вы предпочитаете сценарий (1), прочитайте мой оригинальный ответ ниже.
Это, вероятно, не очень хорошая идея.Вот почему:
Фактический пароль не будет сохранен в системе (если у вас не установлена Windows 3.11 или что-то подобное).Вместо этого будет храниться только хэш пароля, и во время входа в систему пароль, который вводит пользователь, хешируется и сравнивается с сохраненным хешем.
Таким образом, в лучшем случае вы можете извлечь сохраненный хеш из системы (если у вас есть права администратора, скажите).Однако, если это единственное значение, которое вы можете использовать, то любой ключ шифрования, который вы создадите, будет получен из этого хэша, а не из фактического пароля.Таким образом, любой, имеющий доступ к системе, может получить доступ к сохраненному хешу, и оттуда получить ключ шифрования с относительной легкостью.
Короче говоря, нет.Спросите пользователя о выделенном, новом пароле для ваших данных и используйте его только для этого.