【问题标题】:AES Encryption / Decryption with Java 1.5 and ActionScript as3crypto使用 Java 1.5 和 ActionScript as3crypto 进行 AES 加密/解密
【发布时间】:2011-04-07 09:13:54
【问题描述】:

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

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

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

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

问候

【问题讨论】:

    标签: java actionscript-3 aes encryption


    【解决方案1】:

    不看你的代码很难说,但是......

    注意事项。

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

    1. 相同的加密算法(呵呵!)
    2. 密钥大小相同 (128/192/256)
    3. 相同的键
    4. Same Mode of operation(ECB/CBC/CTS 等)
    5. Same initialization vector(部分运营模式,不适用于CTS)
    6. Same Padding scheme
    7. Character Encoding

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

    【讨论】:

    • 不知道Java中默认的操作模式是什么?我没有在 Java 中设置一个,所以我不知道 Java 1.5 使用哪一个。
    • 我认为它必须是这样的 Cipher.getInstance("<algorithm>/<mode of operation>/<padding>"); 查看链接的问题。
    • 问题是我什至无法正确解码 as3crypto (crypto.hurlant.com/demo) 演示页面中所有可能的组合!
    • 我还应该告诉你,欧洲央行不是推荐的操作模式。纯文本中的模式不会隐藏在生成的密文中。阅读这些网页。 en.wikipedia.org/wiki/…herongyang.com/Cryptography/…
    猜你喜欢
    • 2014-01-14
    • 2021-04-27
    • 2014-11-17
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2012-11-22
    • 2016-03-15
    相关资源
    最近更新 更多