PHP,Java,Javascript之间的AES互操作性

我正在开发一个需要加密的HTTP API。 我曾尝试使用AES来获得Java,PHP和Javascript之间的兼容性,但到目前为止,我已经设法获得Java PHP,然后是Java Javascript,但不能同时获得PHP和Javascript。

有没有人有过实现这些语言之间的互操作性的经验?

任何建议将不胜感激。

谢谢

要使AES在不同系统中工作,您必须确保所有系统上的所有内容都相同。 这意味着不依赖系统默认值 – 系统之间的默认值可能不同。 您需要明确指定所有内容。

  • 指定模式; 使用CBC或CTR。
  • 指定IV。 您可以将其添加到密文。
  • 指定填充; 对于AES使用PKCS7。
  • 如果您的密钥是文本字符串,则指定用于将其转换为字节的字符编码。
  • 如果您的明文是文本字符串,则指定用于将其转换为字节的字符编码。

AES是一种标准( 在此定义)。 无论您使用哪种编程语言,结果都必须相同。

从官方定义检查一些测试向量,或者 – 如果您已经实现了块操作模式 – 从这里查看 。

如果你的实现有不同的结果,它可能会工作,但它不会是AES ……