我看到的所有示例最终都会将SecureString转换回标准字符串,从而失去了安全性。有没有一种好的方法可以在不出现这个问题的情况下使用SecureString?
我知道我可以将SecureString调用marshal函数转换为BSTR,但我该如何处理这个BSTR呢?我能逐个字符获取它们吗?如果可以,怎么做?
我认为MSDN页面对SecureString的描述最为精准:
表示应保密的文本。
SecureStrings并不像字符串一样使用。它们是用来限制访问敏感信息的安全容器。
如果您想修改SecureString的内容,所有必要的方法都在那里。
然而,如果您需要获取安全字符串的值,则必须使用ToString()方法,因为没有其他公开的方法可以执行此操作。
换句话说,不要像字符串一样使用SecureStrings。