c# - 如何在没有 SecureString 的情况下保护字符串?

标签 c# encryption securestring

用例是在 c# 中保护内存编程中的字符串。
Microsoft 本身不鼓励使用 SecureString ( https://docs.microsoft.com/en-us/dotnet/api/system.security.securestring?view=netframework-4.7.2 ) 类。

我想知道它是否可以作为一个有效的替代方案:

  • 将字符串转换为字节数组并立即将字符串设置为 null(并最终调用垃圾收集器),
  • 使用类 ProtectedMemory 加密字节数组。

  • 有什么建议吗?

    最佳答案

    SecureString别无选择类(class)。找到 Microsoft 鼓励的“替代方案”here :

    The general approach of dealing with credentials is to avoid them and instead rely on other means to authenticate, such as certificates or Windows authentication.



    因此,如果您确实需要凭据并且别无他法:在 .NET Framework 上,请使用 SecureString .对于 .NET Core,目前别无选择。

    关于c# - 如何在没有 SecureString 的情况下保护字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55590869/

    相关文章:

    c# - 如何让 ToolTip 绑定(bind)与 ComboBox 一起工作?

    python - 相关查询什么是最好的 python 加密方法

    java - 尝试使用 BouncyCaSTLe 的 AES-CBC 解密加密文本的问题

    java - 如何在 Java(Android) 中生成与 .Net 中相同的 AES key ?

    azure-data-factory - 用于 WebActivity 的安全 ADF v2 管道参数字符串

    c# - 从内存中清除 C# 字符串

    c# - 将分支名称获取到代码中

    c# - 编译器优化在循环期间保持静态的属性

    c# - 是否收集了不安全的 C# 垃圾

    c# - 使用安全字符串