【发布时间】:2011-05-16 11:58:15
【问题描述】:
我正在使用 Java 开发一个客户端-服务器应用程序,该应用程序将使用 私钥加密。
目前我有一个带有 Cipher 类的静态对象的类,我将其初始化如下:myCipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);。
现在我的问题是:我有双向通信,我是否应该为每种方式(一个用于加密,一个用于解密)设置一个单独的 Cipher 对象并使用相同的初始化向量?还是应该只使用同一个对象并调用Cipher.init() 来根据我是加密还是解密来更改模式?
在我的脑海中拥有不同的对象是有道理的,但我只是想确定一下。我尝试使用谷歌搜索,但大多数示例仅显示一种加密方式。
目前我将初始化向量发送到未加密的服务器,这是正确的,还是存在安全漏洞?
还是我完全错误地接近它?
谢谢。
【问题讨论】:
-
它对我来说是一种学习练习,而不是生产练习。手动学习如何做事(以及它是如何工作的)比简单地使用 SSL 更有趣,而一切都由 java 完成。
标签: java encryption private-key