如何在两个不同的平台上使用相同的加密密钥?

时间:2015-01-09 08:40:18

标签: java encryption aes

我正在开发一个项目,用户可以访问服务器并向服务器发送命令。然后,服务器将发回信息/结果。发送到服务器的命令以及从服务器接收的信息将在AES 128中加密。

AES密钥将来自密码。密码可以是任意长度,因此密钥将从密码派生。还将产生IV和盐。

我唯一的问题是每次服务器和客户端的IV,盐和密钥都不同。如何确保密钥相同,以便我可以成功加密和解密双方的数据?

1 个答案:

答案 0 :(得分:1)

在加密开始之前必须共享salt和IV。

他们不需要保守秘密,但每次会议都应该保持新鲜。

如果两端的salt和(共享密钥)密码相同,则派生的AES密钥将相同。

IV可以由加密方选择并在加密数据之前发送(以明文形式)。这样收件人就可以初始化AES进行加密。