2011-01-27 8 views
11

getInstanceinitへのメソッド引数が変更されないので、複数のメソッドで同じCipherオブジェクトを使用できますか?Cipherオブジェクトは再利用可能ですか?

たとえば、アプリケーションの複数の部分がユーティリティクラスのdecryptメソッドを使用するとします。渡されたすべての暗号化された値は、同じキーとアルゴリズムを使用して生成されます。だから、同じCipherオブジェクトを再利用できますか?

Cipher(これはKeySpec,SecretKeyオブジェクトの作成につながる可能性があります)の複数の作成について心配する価値はありますか?

答えて

-5

暗号オブジェクトは再利用できますが、毎回init()を呼び出すごとに初期化する必要があります。

KeySpecの再作成が心配な場合は、保存して、複数のinit()で同じ値を使用する必要があります。

+0

返信いただきありがとうございます。ただ確認するには、各doFinal()に対してinit()を1回呼び出さなければならないということですか? – Firefox

+9

doFinal()のJavadocは「終了時に、この暗号オブジェクトを、initの呼び出しによって以前に初期化された状態にリセットします。つまり、オブジェクトはリセットされ、暗号化または復号化に使用できますinitの呼び出しで指定された動作モードに応じて)より多くのデータを格納します。 –

+5

GregSは正しいです。この答えは間違っています。残念なことに、stackoverflowウィザードでは、誤ったupvoteが "ロックイン"されているので取り消すことはできません。悪いデザイン選択ウィザード。 – Nemi

関連する問題