加密的邮件应包含哪些字段,该字段已使用AES和PBDKF2加密?

时间:2018-12-13 12:05:33

标签: java encryption aes

我正在开发一个可以从后端服务器下载内容的应用程序。内容存储在设备上,因此需要加密。当前,我使用AES128并使用PBDKF2派生密钥。 PBDKF2的一部分密码是从该应用可以连接到的外部设备获取的,并在该应用想要下载内容时发送到服务器。

流程如下:

  1. 该应用程序连接到外部设备并获取一些信息x
  2. 该应用程序向后端发送请求以请求某个文件,并在请求中包含x
  3. 后端使用x创建密码,并使用PBDKF2WithHmacSHA1生成AES的密钥
  4. 后端使用生成的密钥和AES/CBC/PKCS5Padding
  5. 对请求的文件进行加密
  6. 后端以以下格式构造一条消息:<iteration>.<salt>.<encrypted-data>,其中<iterations>是传递给PBDKF2的迭代次数,<salt>是{{ 1}},而PBDKF2是加密的文件数据。
  7. 后端将消息发送回客户端
  8. 客户端使用提供的参数解构消息并解密加密的数据。

我的问题是:根据这种模式(输入参数和加密数据的连接)创建消息是否安全?客户端知道如何使用<encrypted-data>来构造密码短语-代码混淆应使其尽可能地难以确定其完成方式:

(我知道原始文件在解密后将位于设备的堆/内存中,但仅在很短的时间内)

0 个答案:

没有答案