SymmetricAlgorithm.Clear メソッド


SymmetricAlgorithm クラスによって使用されているすべてのリソースを解放します。Releases all resources used by the SymmetricAlgorithm class.

 void Clear();
public void Clear ();
member this.Clear : unit -> unit
Public Sub Clear ()


派生クラスを使用する場合、セキュリティの観点からは、オブジェクトの使用が終了した後にガベージコレクションを強制的に実行するだけでは不十分です。Note that when using derived classes, it is not enough, from a security perspective, to simply force a garbage collection after you have finished using the object. オブジェクトのすべての機微なデータを解放するには、オブジェクトの Clear メソッドを明示的に呼び出す必要があります。You must explicitly call the Clear method on the object to zero out any sensitive data within the object before it is released. ガベージコレクションは、収集されたオブジェクトの内容をゼロにはしませんが、メモリを再割り当て可能なものとしてマークするだけであることに注意してください。Note that garbage collection does not zero out the contents of collected objects but simply marks the memory as available for reallocation. そのため、ガベージコレクションされたオブジェクトに含まれるデータは、まだ未割り当てメモリ内のメモリヒープ内に存在する可能性があります。Thus the data contained within a garbage collected object may still be present in the memory heap in unallocated memory. 暗号化オブジェクトの場合、このデータには、キーデータやプレーンテキストのブロックなどの機密情報が含まれている可能性があります。In the case of cryptographic objects, this data could contain sensitive information such as key data or a block of plain text.

機密データを保持する .NET Framework 内のすべての暗号化クラスは、Clear メソッドを実装します。All cryptographic classes in the .NET Framework that hold sensitive data implement a Clear method. Clear メソッドを呼び出すと、オブジェクト内のすべての機微なデータが0で上書きされます。その後、オブジェクトを解放して、安全にガベージコレクションできるようにします。When called, the Clear method overwrites all sensitive data within the object with zeros and then releases the object so that it can be safely garbage collected. オブジェクトをゼロにして解放した場合は、disposing パラメーターを True に設定して Dispose メソッドを呼び出して、オブジェクトに関連付けられているすべてのマネージリソースとアンマネージリソースを破棄する必要があります。When the object has been zeroed and released, you should then call the Dispose method with the disposing parameter set to True to dispose of all managed and unmanaged resources associated with the object.