使用 Base64 编码将字节数组转换为 SecureString 的安全方法
Secure way to convert a byte array to SecureString with Base64 encoding
我有一个 byte[]
需要用 Base64 和 return 编码为 SecureString
。我目前的代码如下:
string privateString = Convert.ToBase64String(byteArray);
SecureString result = new SecureString();
foreach (char c in privateString)
{
result.AppendChar(c);
}
// wipe the byte array...
问题是调用 Convert.ToBase64String
是不安全的,因为它创建了一个我无法破坏的托管字符串。
有这样做的安全方法吗?
就无需中间字符串的 base-64 数据编码方式而言:System.Buffers.Text.Base64
。然而! SecureString
不安全,现在基本上不应该使用。曾经。它没有针对任何有意义的攻击提供任何有用的保护。
我有一个 byte[]
需要用 Base64 和 return 编码为 SecureString
。我目前的代码如下:
string privateString = Convert.ToBase64String(byteArray);
SecureString result = new SecureString();
foreach (char c in privateString)
{
result.AppendChar(c);
}
// wipe the byte array...
问题是调用 Convert.ToBase64String
是不安全的,因为它创建了一个我无法破坏的托管字符串。
有这样做的安全方法吗?
就无需中间字符串的 base-64 数据编码方式而言:System.Buffers.Text.Base64
。然而! SecureString
不安全,现在基本上不应该使用。曾经。它没有针对任何有意义的攻击提供任何有用的保护。