繁体   English   中英

Java加密-最佳做法?

[英]Encryption in java - best practices?

我正在使用Java的客户端-服务器应用程序进行工作,该应用程序将使用私钥加密

当前,我有一个带有Cipher类静态对象的类,该对象初始化如下: myCipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);

现在我的问题是:我有双向通信,是否应该为每种方式使用一个单独的Cipher对象(一种用于加密,一种用于解密)并使用相同的初始化矢量? 还是应该仅使用同一个对象并调用Cipher.init()来更改模式,具体取决于我是加密还是解密?

脑子里有分开的物体是很有意义的,但是我只是想确定一下。 我尝试使用谷歌搜索,但大多数示例仅以一种方式显示加密。

当前,我将初始化向量未加密地发送到服务器,这是正确的还是存在安全漏洞?

还是我完全以错误的方式进行处理?

谢谢。

您的问题有两个:

  1. 您应该使用一个对象。 这样可以节省内存。 但是,如果内存可用,请继续执行两个。 至少这将使您的代码更具可读性。

  2. IV不需要加密。 IV是一个随机值,由发送方和接收方同步。 关于IV的最重要的事情是,不能使用相同的密钥重复或重复使用它!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM