我正在使用 Java 开发一个客户端-服务器应用程序,该应用程序将使用private-key encryption。
目前我有一个类的静态对象Cipher
,我像这样初始化:myCipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
.
现在我的问题是:我有双向通信,我是否应该Cipher
为每种方式设置一个单独的对象(一个用于加密,一个用于解密)并使用相同的初始化向量?或者我应该只使用相同的对象并Cipher.init()
根据我是加密还是解密来调用更改模式?
在我的脑海中拥有不同的对象是有道理的,但我只是想确定一下。我试过谷歌搜索,但大多数例子只显示加密的一种方式。
目前我将初始化向量发送到未加密的服务器,这是正确的,还是存在安全漏洞?
还是我以完全错误的方式接近它?
谢谢。