java - 使用 Java 1.5 和 ActionScript as3crypto 进行 AES 加密/解密

标签 java actionscript-3 aes encryption

在我的网站上,我使用 AES 128 位加密/解密字符串。我用 Java 加密了一个字符串,并想在同一网页上运行的 Flash 应用程序中对其进行解密,并将加密的字符串作为 JavaScript 变量传递给该应用程序。

我使用 Java 生成一个 128 位 key 。我可以在Java中成功地进行加密/解密。 Java 输出 key 的字节数组 (byte[])、加密和解密结果。我使用 Base64 编码/解码来成功获得等效的字符串。

在闪存端,我使用 Java 生成的 key (Base64) 来解密字符串,我注意到它没有正确解密。我在flash中使用的加密库是as3crypto 。当我在 demo page of the as3crypto project 上测试时使用 Java 生成的 key (Base64),我注意到使用所有可能的模式(CBC、CFB 等)都没有得到相同的结果。

导致此错误的可能原因是什么?我做错了什么吗?

问候

最佳答案

如果不看一下你的代码就很难说,但是......

有几点需要注意。

AES 加密数据可以在语言之间互换,因此需要考虑的事项很少。

  1. 相同的加密算法(废话!)
  2. key 大小相同 (128/192/256)
  3. 相同的 key
  4. Same Mode of operation (欧洲央行/CBC/CTS 等)
  5. Same initialization vector (对于某些操作模式,不适用于 CTS)
  6. Same Padding scheme
  7. Character Encoding

您确定 Java 和 ActionScript 之间的所有这些都是相同的吗?

关于java - 使用 Java 1.5 和 ActionScript as3crypto 进行 AES 加密/解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5578701/

相关文章:

flash - 我在舞台上放了一个 TLFTextField 但无法通过代码访问它

javascript - 如何使用 Javascript 使用已知的 KEY 和 IV 解密 AES?

java - 如何使用 renjin 在 java 中绘图

java - 无法在maven项目的a/resources文件中使用FileOutputStream写入

flash - AS3 计时器与 ENTER_FRAME 性能

ios - 无法在 swift 中解密使用 openssl -aes256 加密的字符串

python - 如何使用python管理CAdES和PAdES文件加密?

java - 如何在方法中为多个数组创建 foreach 循环?

java - 测试一个char反转字符串的结果

javascript - AS3 - 使用 ExernalInterface.call 重置 JS 计时器