在概念层面上,SecureString 看起来像是 ProtectedMemory 的一种特殊化。
诚然,它的主要功能是缩短 RAM、交换和故障转储中(不可变)字符串的生命周期。但是,它也使用 DPAPI 来保护除入口和出口点之外的数据。DPAPI 使用密码学来完成它的工作。那么为什么将 SecureString 放在 System.Security 而不是 System.Security.Cryptography 中呢?
在我看来,如果在实现中没有使用密码学,那么 SecureString 将只提供比预先存在的 StringBuilder 更小的便利优势。
SecureString 和 ProtectedMemory 类名称中的“Secure”与“Protected”之间也存在对比,我也不确定这可能是如何激发的。