Существует вероятность, что File.Encrypt сделает больше, чтобы помочь уничтожить данные, чем File.Delete (который определенно ничего не делает в этом отношении), но это не будет надежный подход.
На уровне операционной системы и аппаратного обеспечения происходит много всего, что представляет собой пару уровней абстракции, отделенных от кода .NET. Например, ваша файловая система может случайным образом решить переместить место, где она физически хранит ваш файл на диске, поэтому перезапись того места, где вы в данный момент думаете, что файл может фактически не удалить следы от того места, где файл был сохранен ранее. Даже если вам удастся перезаписать нужные части файла, на самом диске часто остается остаточный сигнал, который может быть подхвачен кем-то с подходящим оборудованием. Некоторые файловые системы действительно ничего не перезаписывают: они просто добавляют информацию каждый раз, когда происходит изменение, поэтому вы всегда можете узнать, какое содержимое диска было в любой данный момент времени.
Поэтому, если вы не можете предотвратить сохранение файла, любая попытка действительно стереть его будет несовершенной. Если вы готовы смириться с несовершенством и хотите лишь несколько смягчить потенциальные проблемы, вы можете использовать стратегию , аналогичную найденной , чтобы попытаться перезаписать файл с данными мусора несколько раз и надеяться к лучшему.
Но я бы не стал слишком быстро отказываться от решения проблемы у ее источника. Например, документы Ansible упоминание:
Отличной альтернативой плагину для поиска паролей, если вам не нужно генерировать случайные пароли для каждого хоста, было бы использование Vault в плейбуках. Прочтите там документацию и сначала подумайте об ее использовании, это будет более желательно для большинства приложений.