ActionScript 3 - PHP通过AMF(或其他)加密发送数据

时间:2011-08-31 18:35:26

标签: php actionscript-3 public-key-encryption

我需要帮助两件事:

  1. 有关加密算法的建议,我可以用它来编码服务器上的数据,将其发送到AS3客户端并在那里解码。从我读到的,公共 - 私人密钥听起来不错。

  2. 可编码和解码的AS3库,与PHP的bcrypt兼容(同样,我读bcrypt最适合这种数据传输)。

  3. 我不是安全专家,我希望问题清楚而且不笨拙。

    编辑:正如建议的SSL是一个很好的选择,但目前我正在寻找非SSL的。

    谢谢。

3 个答案:

答案 0 :(得分:3)

你的威胁模型是什么?如果您只是担心人们在线路上嗅探数据,那么请使用SSL。它对您的应用程序是透明的,通常您只需安装证书并将您的URL从http://更改为https://

如果你的主要威胁是有人在应用程序上运行调试器以捕获数据,那么你就会遇到一个更大的问题,并且不太可能阻止某人“窃取”数据。

答案 1 :(得分:1)

向@Marc B提出指出SSL非常安全,但如果您绝对需要自定义加密......

如果服务器支持mcrypt(大多数PHP实现都支持),那么你可以使用mcrypt提供的任何加密方法(包括现代AES实现,IDEA,TEA等等[实际上是一个长列表]) 。但是,必须编写php脚本(当然)以期望加密数据。

查看http://php.net/manual/en/book.mcrypt.php以获取有关PHP实现mcrypt的信息。

编辑:在安装了php-mcrypt的近乎库存的fedora盒子上快速转储print_r(mycrypt_list_algorithms())显示...

Array
(
    [0] => cast-128
    [1] => gost
    [2] => rijndael-128
    [3] => twofish
    [4] => arcfour
    [5] => cast-256
    [6] => loki97
    [7] => rijndael-192
    [8] => saferplus
    [9] => wake
    [10] => blowfish-compat
    [11] => des
    [12] => rijndael-256
    [13] => serpent
    [14] => xtea
    [15] => blowfish
    [16] => enigma
    [17] => rc2
    [18] => tripledes
)
rijndael是AES。有些人因为不同的原因而比其他人更好,而有些人只是垃圾(如DES)。

答案 2 :(得分:0)

如果你不介意某人使用客户端调试器,只需使用一个ActionScript库,如as3crypto,它就应该拥有解码PHP发送的任何数据所需的一切。

使用公钥 - 私钥加密没有任何意义,因为您必须将私钥嵌入SWF中,从而将其公开。