秘密鍵暗号化を使用するJavaのクライアントサーバーアプリケーションに取り組んでいます。
Cipher
現在、次のように初期化するクラスの静的オブジェクトを持つクラスがありますmyCipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
。
ここで私の質問は次のとおりです。私は双方向通信を行っていCipher
ますが、各方法 (暗号化用と復号化用) に個別のオブジェクトを用意し、同じ初期化ベクトルを使用する必要がありますか? または、同じオブジェクトと呼び出しを使用して、Cipher.init()
暗号化するか復号化するかに応じてモードを変更する必要がありますか?
頭の中に別々のオブジェクトがあるのは理にかなっていますが、確認したかっただけです。私はグーグルを試しましたが、ほとんどの例は一方向の暗号化しか示していません。
現在、初期化ベクトルを暗号化せずにサーバーに送信していますが、これは正しいですか、それともセキュリティ上の欠陥がありますか?
それとも、完全に間違った方法でアプローチしていますか?
ありがとう。