1

我想在我拥有的一些 Flash/PHP 应用程序中实现一些安全性。

我有一些与 PHP 文件通信的 Flash 应用程序,并且 PHP 将数据作为获取字符串(例如:)发送name=John&sname=Doe&age=24&balance=12.4。而不是所有这些变量,我希望它发送一个flashvar=jr9afgaw9-fg90agfawf7gw包含这些值的变量(例如:),因此 Flash 将解密字符串并获取真实且有用的变量。

我想使用私钥对其进行加密,并使用相同的私钥在 Flash 中对其进行解密。如果有人想解码 PHP 发送的消息,他必须反编译 flash 文件并找到我在 Flash 中使用的私钥来解码消息,然后对其进行解码。

我在这里发布的原因是因为我想使用一种加密算法,它只允许使用私钥进行加密/解密。

我是密码学领域的新手,我想对此提出一些建议。

谢谢!

4

3 回答 3

3

“共享私钥”被称为对称密钥。今天使用的标准对称算法是AES。我不知道 php 或 flash 是否有能力使用 AES(Google 有),但如果有,您可以在代码中硬编码 AES 密钥并使用它来加密和解密数据。但是,对密钥进行硬编码是非常糟糕的密码学,只不过是混淆。

要记住的另一件事是您使用的密码模式。密码块链接 (CBC) 需要使用初始化向量(有点像哈希的盐),因此使用相同密钥但不同 IV 加密的两个相同值将导致不同的密文。ECB 不需要初始化向量,但安全性较低。为了您的需要,我会选择 ECB,这样您就不必担心 IV。

谷歌是一个很好的查找信息的方法,你应该使用它。

于 2011-06-16T18:29:46.107 回答
1

快速搜索后,我发现 ActionScript 3 通过ASCrypt3库支持加密。根据该网站,支持 AES Rijndael。

使用mcrypt扩展的 PHP 也支持 Rijndael 。这是取自手册的一个很好的例子:

$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = "This is a very secret key";
$text = "Meet me at 11 o'clock behind the monument.";
echo strlen($text) . "\n";

$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
echo strlen($crypttext) . "\n";
于 2011-06-16T18:41:58.097 回答
0

如果您想加密数据,我会使用ASCrypt3o库。
它工作得很好并且支持多种类型的加密。
您可以在此处查看它的演示,单击密钥选项卡。

于 2011-06-16T20:20:54.340 回答