在临时 XML 配置文件中存储密码的正确方法

Proper Way to Store Passwords in Temporary XML Config File

我创建了一个程序,它启动一个单独的子进程来对文件执行任务。其中一些文件受密码保护,因此为了让子进程对这些文件进行 运行,它需要它们的密码。我的计划是传递一个 XML 配置文件,其中包含与此类似的所有文件路径和密码:

<Files>
    <File>
      <Path>C:\Users\hahaha\hehehe\file2</Path>
      <Password>123456abc</Password>
    </File>
    <File>
      <Path>C:\Users\blablaa\abc\file1</Path>
      <Password>123456abc</Password>
    </File>
</Files>

此信息保留在本地计算机上,永远不会通过网络传递。这个 XML 配置文件是在父进程中创建的。子进程将表示此 XML 配置文件路径的字符串作为参数。然后子进程将解析 XML 文件,然后根据文件和密码((键,值)=> 文件路径,密码)创建一个字典。该过程完成后,可以删除配置文件。

我的问题是:在配置文件中存储密码的最佳实践和方法是什么?我认为加密它们就足够了。或者如果有更好的完全不同的方法,那会是什么样子?

一个。想法是使用 Windows 密码管理器。

  1. 使用 CredAPI "My Super Application" 为 URL "My Super Application" 创建临时密码
  2. 用它加密 XML 部分。

乙。想法是使用 CryptoAPI

为用户个人商店中的应用程序创建证书
  1. 使用 Crypto API
  2. 创建带有两个密钥的临时证书并将其放入个人用户中
  3. 用它加密 XML 部分。

要获得对 XML 的访问权限,坏人需要闯入其他用户帐户。如果管理员重置密码,那么所有员工都将丢失。

但是将数据存储在临时文件中只是为了将其传递给子进程是一件有点幼稚的事情。 正确的方法是使用其中任何一个来完成该任务

  • 网络远程处理
  • TcpServer - TcpClient 并通过网络流数据传输
  • 内存映射文件
  • 管道