我正在开发一个可以从后端服务器下载内容的应用程序。内容存储在设备上,因此需要加密。当前,我使用AES128并使用PBDKF2派生密钥。 PBDKF2的一部分密码是从该应用可以连接到的外部设备获取的,并在该应用想要下载内容时发送到服务器。
流程如下:
x
x
x
创建密码,并使用PBDKF2WithHmacSHA1
生成AES
的密钥AES/CBC/PKCS5Padding
<iteration>.<salt>.<encrypted-data>
,其中<iterations>
是传递给PBDKF2
的迭代次数,<salt>
是{{ 1}},而PBDKF2
是加密的文件数据。我的问题是:根据这种模式(输入参数和加密数据的连接)创建消息是否安全?客户端知道如何使用<encrypted-data>
来构造密码短语-代码混淆应使其尽可能地难以确定其完成方式:
(我知道原始文件在解密后将位于设备的堆/内存中,但仅在很短的时间内)