首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php和flex之间交换aes 256加密数据

在php和flex之间交换aes 256加密数据
EN

Stack Overflow用户
提问于 2011-07-08 01:19:51
回答 1查看 1.7K关注 0票数 1

我需要2套加密/解密函数在PHP和AS3下运行。

我找到了AS3Crypto (用于Flex)和mcrypt_encrypt (用于PHP),本文展示了如何使用它们进行DES加密:http://www.zedia.net/2009/as3crypto-and-php-what-a-fun-ride/

然后,我尝试用AES-256替换DES加密,因为DES似乎太容易受到蛮力攻击。Flex和PHP中的AES加密结果是不同的。有没有人知道(并测试过) as3和php中aes加密的任何等效函数?

如果我说得不够清楚,这是另一个有同样问题的用户的帖子:http://forum.openlaszlo.org/showthread.php?t=13709

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-07-08 01:44:09

我已经用不同的后端做过类似的事情,让它们匹配起来可能是一件令人头疼的事情。

我将根据经验高度自信地告诉您,您遇到的问题最有可能是两者之间的填充或来回编码(十六进制)不匹配。

这是我几年前做的一个实现中的一些coldfusion工作代码,是我能找到的最快的……

代码语言:javascript
复制
<cfsetting enablecfoutputonly="yes">
<cfparam name="form.k" default="1bbee91984f8b5bc032b6f67a665704e"/>
<cfscript>
textToEncrypt = 'printButton=No&saveButton=No';
encKey = ToBase64(BinaryDecode(form.k,"Hex"));
encryptedText = encrypt(textToEncrypt, encKey, 'AES', 'Hex');
</cfscript>
<cfoutput>settings=#encryptedText#</cfoutput>

(附注: coldfusion是不是很棒?哈哈:P)

flex中的解密方面:

代码语言:javascript
复制
private function settingsEncResponse( e : ResultEvent ) : void {
            // decrypt settings string
            var o : Object = e.result;
            var k:String = pKey; // key to decrypt with
            var kdata:ByteArray;
            kdata = Hex.toArray(k);
            var txt:String = o.settings; // text to decrypt
            var data:ByteArray;
            data = Hex.toArray(txt);
            var pad:IPad = new PKCS5;
            var mode:ICipher = Crypto.getCipher("aes-ecb", kdata, pad);
            pad.setBlockSize(mode.getBlockSize());
            mode.decrypt(data);
            currentInput = data;
            var decryptedSettings : String = Hex.toString(Hex.fromArray(currentInput)); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6614529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档