0
私のコードで使用するCONSTという変数を安全なものにしたいと思います。私はSystem.Security.SecureStringを使用して調べましたが、ユーザーがこのパスワードを見つけられないようにするために、チケットになる可能性があります。唯一の問題はそれを初期化することです。ほとんどの場合、SecureStringはユーザーのキー押下によって最適に設定されているようです。私はこれを望んでいない。私はaccross来て1つのオプションは、次のようになります。ReadStringのためにSecureStringを初期化する方法
唯一の問題は、char配列「T」、「E」、「S」、「T」をおそらくまだコンパイル後にメモリに一緒にパックされている
unsafe public static void Main()
{
SecureString testString;
// Define the string value to assign to a new secure string.
char[] chars = { 't', 'e', 's', 't' };
// Instantiate a new secure string.
fixed(char* pChars = chars)
{
testString = new SecureString(pChars, chars.Length);
}
// Display secure string length.
Console.WriteLine("The length of the string is {0} characters.",
testString.Length);
}
。コンパイル時にSecureStringの値を一定の値に設定し、その値をスクランブルさせるのに良い方法はありますか?
あなたは何を達成しようとしていますか?あなたはいくつかの機能を隠すために「秘密の」パスワードを保存したいのですか?コードが流出/発見された瞬間、あなたは「セキュリティ」がなくなってしまった!より優れた解決策は、あなたのアプリを持つことです。電話のホーム。 –
(ソース)コードを流出させる必要はなく、実行ファイルの配布だけで十分です。デコンパイルでは十分であるかもしれないし、デバッガで実行しているかもしれない。あなたが信頼できない人に送る秘密はもはや秘密ではありません。 – Kitsune
これの根本は、x509certificate2をファイルに書き出し、パスワードで保護しなければならないということです。私は同じパスワードを使ってそれを読み返します。 – Nick