我正在使用Java的客户端服务器应用程序,它将使用私钥加密。java中的加密 - 最佳实践?
目前我有一个类的Cipher
类的静态对象,我这样初始化:myCipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
。
现在我的问题是:我有双向通信,我应该为每种方式(一个用于加密,一个用于解密)使用单独的Cipher
对象并使用相同的初始化向量?或者我应该只使用相同的对象并根据我是加密还是解密来调用Cipher.init()
来更改模式?
在我脑海中有独立的物体是有道理的,但我只是想确定。我试着用Google搜索,但大多数例子只显示加密的一种方式。
当前我发送的初始化向量未加密的服务器,这是正确的,还是存在安全漏洞?
或者我完全错误地接近它?
谢谢。
为什么不使用SSL? – EJP 2011-05-17 01:58:49
它对我来说是一个学习练习,而不是一个生产练习。学习如何通过手动操作(以及如何工作)来更简单地使用SSL来完成java的所有工作。 – Cheetah 2011-05-17 10:26:11