2

PrivateKey機密情報をメモリから削除する方法はありますか? (ガベージコレクターがクリーンアップすることを期待せずに?)

独自の実装を作成する必要がありますか、PrivateKey
または
使用できるものが既にありますか?

4

2 に答える 2

1

機密データの処理が終わったら、それを上書きできるようにする必要があるため、機密データが不変のデータ型に入れられないようにする必要があります (たとえば、String は使用できません)。

おそらく、秘密鍵の中身をバイト配列に保持します (これがまさにgetEncoded()返されるものであるため)。秘密鍵の処理が完了したら、バイト配列をゼロ (または何でも) で埋めます。

独自のバージョンの PrivateKey を実装する必要がある場合があるため、この新しい機能を追加できます (提供された実装がコピーではなく実際の配列へのエイリアスを返すことを保証できないため)。

の呼び出し元についても心配する必要がありgetEncoded()ます。呼び出し元はデータのコピーを保持している可能性があるからです。

于 2013-09-19T15:17:44.403 に答える