Manchmal möchte man eine Zeichenkette im Arbeitsspeicher nicht länger als nötig im Klartext vorhalten. Hierfür gibt es unter .NET/Mono die Klasse „SecureString“. Diese verschlüsselt den Klartext, so das dieser nicht ohne weiteres im Speicher zu finden ist. Leider ist die Nutzung der „SecureString“ etwas komplizierter:
SecureString secureString=new SecureString(); secureString.AppendChar('g'); secureString.AppendChar('e'); secureString.AppendChar('h'); secureString.AppendChar('e'); secureString.AppendChar('i'); secureString.AppendChar('m'); // in Klartext umwandeln IntPtr secureStringPointer=Marshal.SecureStringToBSTR(secureString); string klartext=Marshal.PtrToStringAuto(secureStringPointer);
Hier muss man abwägen, ob sich die Nutzung eines solches Konstruktes lohnt, oder man weiterhin normale Strings für sensible Daten nutzt.