Od SecureString
wykorzystuje interfejs IDispose
. Możesz to zrobić w ten sposób.
SecureString secure = new SecureString();
foreach(var character in data.ToCharArray())
secure.AppendChar(character);
Zasadniczo parametr data
.
Jeśli korzystasz z using
, aby pomóc w złagodzeniu zasobów; będziesz uważać na zakres. Ale może to być korzystna alternatywa, w zależności od zastosowania.
Aktualizacja:
Można rzeczywiście zrobić metodą pełną Podpis:
public static SecureString ConvertStringToSecureString(this string data)
{
var secure = new SecureString()
foreach(var character in data.ToCharArray())
secure.AppendChar(character);
secure.MakeReadOnly();
return secure;
}
dla deszyfrowania, co chcesz zrobić:
public static string ConvertSecureStringToString(this SecureString data)
{
var pointer = IntPtr.Zero;
try
{
pointer = Marshal.SecureStringToGlobalAllocUnicode(data);
return Marshal.PtrToStringUni(pointer);
}
finally
{
Marshal.ZeroFreeGlobalAllocUnicode(pointer);
}
}
Poniższy article daje niektóre dodatkowe informacje.
Zobacz także: http://stackoverflow.com/questions/1800695/c-securestring-question –
Nie zapomnij, aby Państwa 'SecureString' tylko do odczytu. – Greg