.net - 如何在注册表中存储 SecureString?

标签 .net windows registry

我想在注册表中存储一个 System.SecureString。那可能吗?我将如何着手去做?

下次运行时我的程序是否能够再次解密字符串?

最佳答案

如果没有辅助层,就不可能以加密形式进行操作。它本身不支持任何形式的序列化,实际上甚至无法以其原生形式进行检查。要从中获取任何信息,您需要通过 PInvoke 或 SecureStringToBSTR API。这两者都可以让您以未加密的形式访问 string

我可以看到这个工作的一种方式是

  1. 通过 SecureStringToBSTRSecureString 转换为 BSTR
  2. 加密BSTR
  3. 将结果存储在注册表中

当然,您需要使用可在程序实例之间重复使用的加密机制。

关于.net - 如何在注册表中存储 SecureString?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216906/

相关文章:

c# - 是否可以在子类中使用重叠列使用 TPH 继承?

.net - 我无法发布到 Windows Azure 上的云服务。我收到安全 token 验证错误。我该如何修复它?

c++ - 为什么我的 DLL 无法注册?

c# - .net 版本 VS2005 用于 C# 项目

c++ - 比 SetPixel() 更快的改变像素的方法

windows - 如何记录和比较任何程序安装前后的 Windows 注册表数据?

java - 从 Java 程序,可移植的方式来编写带重音的字符串

regex - 在 PowerShell 中,如果环境变量(如 $SystemRoot$)是字符串的一部分,我该如何转换它们?

c - 无法读取 C 中的某些注册表项

c# - 如何将 Font 保留在继承的 TextBox 中?