SafelyConvertEncryptedStandardStringstoSecureString保存到文件。后来,我用C#应用程序(在同一用户ID和同一台机器上)读取了这个加密的字符串。我想将这个加密的字符串转换为securestring对象。在powershell中,这可以使用“convertto-securestring”来完成。我怎样才能在C#中安全地做到这一点?我知道这个答案(HowdoIuseConvertTo-SecureString),但它假定加密字符串是使用已知密钥创建的。这不同于在没有密钥的情况下创建加密字符串的情况(因此与用户ID和构造它的机器相关联。)另请注意,在对上述问题的评论中,引用了Microsoft的文档,表明未提供密钥时使用Windows数据保护API(DPAPI)。这篇文章(https://msdn.microsoft.com/en-us/library/ms229741(v=vs.110).aspx)展示了如何使用DPAPI,但不幸的是它按照微软文章中指定的方式使用它result再次导致字符串以明文形式出现在字符串对象中(不受我们的控制,与处理相反),因此以指定的方式使用它是不安全的。实际上,它实际上是这个(HowtodecryptastringinC#encryptedviaPowerShell)和HowdoIuseConvertTo-SecureString中的问题的组合。作为记录,这段代码有效,但我不确定将解密的字符串存储在字节数组中有什么问题,即使我尽快破解它也是如此:长度/2;byte[]encrypted=newbyte[lngth];对于(inti=0;i
