问题标签 [as3crypto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3392 浏览

php - 如何使用由 aes-256-ecb 加密的 as3crypto 字符串解密?

字符串在这里用 php 加密。可以使用以下参数对其进行解密:Rijndael-256、ECB 和 Base64。但它不能被我的 ActionScript 代码解密:

升级版:

“无法解密”意味着我得到了错误的纯文本。

在 php 中,纯文本首先由 aes-256-ecb 加密。然后用Base64编码。在 ActionScript 中,这些步骤以相反的顺序完成。

UPD2:

测试编码解码:

停止后的输出cihper.encrypt(data)为:

UPD3:

它适用于 PKCS5 填充:

输出是:

UPD4:

对于从 php (as here ) 获取的数据,带有 PKCS5 填充的代码在此处停止运行。并且使用 Null 填充它不会停止但解密的数据是错误的。

0 投票
2 回答
1636 浏览

php - 在 PHP 中解密 as3crypto 加密文本

我试图通过演示应用程序加密 as3crypto 中的文本。

现在我正在尝试通过 php 解密加密的文本,但似乎文本没有正确解密。有谁知道如何通过PHP正确解密它?还是我做错了?请赐教...

这是场景:

  1. 在http://crypto.hurlant.com/demo/中加密它:

    加密: AES

    模式: CBC

    填充:

    密钥: 11918f8bcd112e92744125008722050c

    文字: Lorem ipsum dolor sit amet,consectetur adipiscing elit。在 ut massa nec purus laoreet posuere quis vitae tortor。

    初始化向量: 留空

  2. 按加密。选择base64并复制密文。

  3. 制作一个包含这些代码的 php 脚本并运行它:

    $cipher = MCRYPT_RIJNDAEL_128;

    $mode = MCRYPT_MODE_CBC;

    $key = "11918f8bcd112e92744125008722050c";

    $cipher = "在此处放置密码文本...";

    $data = base64_decode($cipher);

    echo mcrypt_decrypt($cipher, $key, $data, $mode);

0 投票
1 回答
732 浏览

asp.net - 在 .Net 中加密并在 AS3 中解密

我需要加密 ASP.net 中的一些文件并在使用 Action Script 3 构建的 flash 应用程序中解密它们。

AS3 开发人员发现了一个名为 AS3crypto 的库,这对于 AS3 来说似乎是一个不错的库。这个想法是使用相同的密钥加密和解密。对称加密?

但我正在努力寻找可以使用相同加密算法的 .Net 等价物。

我已经尝试了来自 4guysfromrolla 博客的 RC4 示例,它对我来说太慢了。我已经在这个例子中尝试过 AES(http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged (v=vs.100).aspx ),它在.Net 上效果很好,但我可以似乎没有使用 AS3crypto 解密以取回相同的文件。AS3crypto 似乎不喜欢使用 IV 进行解密。我只能提供一把钥匙。

到目前为止,我迷路了。如何在 .Net 中加密文件并在 AS3 中解密以获取相同的文件?

0 投票
0 回答
525 浏览

asp.net - 解密期间丢失的前几个字符

我在 VB.Net 中使用 AES CBC 加密,并使用AS3Crypto完成解密。解密过程中丢失了前几个字符(大约 16 个),并替换为如下所示的随机字符。

这是我的 .net 代码。在 AS3Crypto 演示页面上,我使用 Secret Key > AES > CBC。我尝试使用不同的填充和键格式设置仍然没有运气。

谢谢。

0 投票
1 回答
868 浏览

asp.net - 指定的初始化向量 (IV) 与此算法的块大小不匹配

我正在尝试解密一些文本并收到此错误。我做了很多谷歌和阅读文章。有很多人有同样的错误,但我无法解决我的问题。

下面是一些代码示例,您可以看到我正在使用的 IV。

IV 由 AS3crypto 生产。您可以在此页面中查看演示。 您可以在“密钥”选项卡上看到。我的设置是AES,CBC。

即我无法更改 IV,我认为 IV 是有效的。

我认为问题在于我在.Net 中设置 IV 的方式不正确。

有什么想法吗?

提前致谢。

0 投票
2 回答
1493 浏览

actionscript-3 - 使用 as3httpclientlib 从 as3 air 项目到 web 服务的 https

我正在尝试更改已完成的 Web 服务实现以使用 HTTPS。

我一直在使用as3httpclientlibhttps://code.google.com/p/as3httpclientlib/)。

当我使用非 ssl 端点时,它按预期工作。

但是,当我使用下载页面(https://code.google.com/p/as3crypto/downloads/list)或包含的 SSL 端点和版本 1.3 as3crypt 时,as3crypto-1_3_patched.swc我得到以下信息:

跟踪源自 DER.as 的第 123 行 https://code.google.com/p/as3crypto/source/browse/trunk/as3crypto/src/com/hurlant/util/der/DER.as?r=7 以及X509Certificate.as https://code.google.com/p/as3crypto/source/browse/trunk/as3crypto/src/com/hurlant/crypto/cert/X509Certificate.as?spec=svn28&r=7第 225 行的错误

当我使用最新版本的as3crypt https://code.google.com/p/as3crypto/source/detail?r=28我得到

从https://code.google.com/p/as3crypto/source/browse/trunk/as3crypto/src/com/hurlant/util/asn1/type/SetType.as的第 23 行抛出

我尝试访问的网络服务位于 azurewebsites 上,因此将使用 *.azurewebsites.net 证书。

我也在使用ASC2编译器,这导致了我必须在加密项目中修复的几个错误,包括我发现在 air sdk 3.5 上发布的if (hex.length&1==1) hex="0"+hex;com.hurlant.util.hex语法错误if ((hex.length&1)==1) hex="0"+hex;

我开始认为这可能与在 Azure 网站上完成 SSL 的方式有关,因为当我完全剥离请求时,我仍然得到同样的错误,但是指向https://www.google.com,我没有错误。

他们在他们的网站上声明:

HTTPS 并不总是有效。as3crypto 库存在一些小错误,例如,雅虎的 https 和雅虎拥有的域(如美味)目前无法正常工作。

我浏览了 as3crypt 的问题列表,想知道其中一个是否包含修复:https ://code.google.com/p/as3crypto/issues/list

有谁知道我为什么会收到这些错误(天蓝色对他们的证书做了什么不同的事情(可能是通配符?))以及我该如何解决?是否有可用的 as3crypto 维护版本?或者有没有更好的方法来使用 Air 移动应用程序中的 https 网络服务?

****更新****

我尝试使用 as3crypto 的补丁版本,但仍然没有乐趣。以下是我的堆栈跟踪出错时的副本。解析证书似乎有错误?

在此处输入图像描述

我还研究过改用 SecureSocket,但不幸的是 iOS 不支持它。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SecureSocket.html

AIR 配置文件支持:所有桌面操作系统都支持此功能,但并非所有 AIR for TV 设备都支持此功能。在移动设备上,它在 Android 上受支持,但在 iOS 上不支持。您可以使用 SecureSocket.isSupported 属性在运行时测试支持。

重建:

向 azurewebsites.net 的任何 https 子域发出获取请求。

即以下代码将重现:

0 投票
1 回答
1040 浏览

javascript - Node.js 和 Actionscript (as3crypto) 之间的 AES 中断

我正在尝试使 AES-256 加密跨 node.js 和 actionscript 工作,但是我尝试的每种方法都导致了死胡同。以下是两种不同的尝试,它们都失败了(出于不同的原因)。

需要注意的重要一点是,在这两种情况下,IV、密钥和密文都完美匹配。

请原谅代码重复,但我认为最好只显示我正在使用的内容......

1)默认填充

在 as3 中使用默认的 Node.JS 填充和 PKCS5 时,出现错误:PKCS#5:unpad: Invalid padding value。预期 [105],发现 [30]。

节点.JS

AS3

使用“HELLO WORLD!”时 对于输入和两者的相同键,我得到

Node.JS 端的输出

四:87134386f7bf12dffc9b87b49da86d10

密钥:56036ce4ddab006af7b0924ddad511adbea3fba97f672db4040102a1978e41f7

明文:48454c4c4f20574f524c4421

密文:d68db4542be683a80bceb0b8ca900d5c

AS3侧输出

四:87134386f7bf12dffc9b87b49da86d10

密钥:56036ce4ddab006af7b0924ddad511adbea3fba97f672db4040102a1978e41f7

密文:d68db4542be683a80bceb0b8ca900d5c

解密后的明文应该是:48454c4c4f20574f524c4421

错误:PKCS#5:unpad:无效的填充值。预期 [105],发现 [30]

2)自定义和空填充

当禁用默认的 Node.JS 填充并填充空字符,然后在 as3 上使用 NullPad 时,我没有收到任何错误,但解密失败

节点.JS

AS3

使用“HELLO WORLD!”时 对于输入和两者的相同键,我得到

Node.JS 端的输出

四:cfa6cfee9f81d81d7e3b651e57b6f42d

密钥:56036ce4ddab006af7b0924ddad511adbea3fba97f672db4040102a1978e41f7

明文:48454c4c4f20574f524c4421

密文:8daf432aad551e333818c42d3190dca5

AS3侧输出

四:cfa6cfee9f81d81d7e3b651e57b6f42d

密钥:56036ce4ddab006af7b0924ddad511adbea3fba97f672db4040102a1978e41f7

密文:8daf432aad551e333818c42d3190dca5

解密后的明文应该是:48454c4c4f20574f524c4421

但它是:70a4716a7a7d7156bca075efe90041a3

请注意,尝试 retBytes.readUTFBytes(retBytes.length) 也会产生垃圾。

有什么方法可以使 AES 加密在两个平台上都起作用?!


编辑:为了后代,一些用于加密和解密的节点代码,并附有说明潜在问题的注释:

0 投票
1 回答
96 浏览

javascript - 如何限制在 dataProvider AS3 中接收的项目数量

*您好!我只需要在列表组件中显示的 dataProvider 上填充 100 个项目。即使物品超过500甚至1000,我也只想要100个物品,首先是所有打开相机的物品,然后填充其余的总共完成100个在DataProvider上。使用 ActionScript 3.0 (Flash CC):

更新:基本上,我需要的是:我在 Flash 中有一个视频聊天应用程序,所以当有数百个用户时,由于列表组件填充了数百个项目(用户),应用程序变得很慢,所以我希望至少有 100 个列表中的用户优先考虑用户流式传输的实时视频。是否有意义?:) 谢谢- 亚历克斯刚刚编辑
*

代码:

谢谢你花时间做这个!

0 投票
1 回答
70 浏览

actionscript-3 - 我收到 ArgumentError:错误 #2025:

这是我的代码。请任何可以帮助我的人。我很初学者。
它给了我这个错误

ArgumentError:错误 #2025:提供的 DisplayObject 必须是调用者的子对象。在 flash.display::DisplayObjectContainer/removeChild() 在 final2_fla::MainTimeline/loop()

0 投票
1 回答
845 浏览

python - Python AES 加密(PyCrypto)-> 使用 AES 的 AS3 解密(as3Crypto)

我有一个 django 应用程序,它为 Flash 应用程序提供加密的媒体文件。python中的加密是使用PyCrypto完成的(我也包括描述以防万一):

我还无法解密 Python 提供的媒体文件( GreenSock 使用LoaderMax下载,使用“DataLoader”)。我的 AS3 代码(使用AS3Crypto)如下:

我明白了

RangeError:错误 #2006

一种怀疑是在 Python 中我有 64 位基础,但我认为AS3 ByteArray 是 32 位基础。我已经尝试了以下方法,但得到了相同的错误。

另一个怀疑是我没有从_content中适当地删除“填充”/适当地设置我的IV(这是由我必须从_content中删除的填充指定的)。然而,这应该通过那个“简单”的语句来完成。我一直在尝试这个,但没有成功:

谁能建议我如何解决这个问题?:)

非常感谢!