1

私が持っているFlash/PHPアプリケーションのいくつかにセキュリティを実装したいと思います。

PHPファイルと通信するFlashアプリがいくつかあり、PHPはデータをget string(例:)として送信していますname=John&sname=Doe&age=24&balance=12.4。これらすべての変数の代わりに、これらの値を含む単一の変数(例:)を送信しflashvar=jr9afgaw9-fg90agfawf7gwたいので、Flashは文字列を復号化し、実際の有用な変数を取得します。

秘密鍵を使用してこれを暗号化し、同じ秘密鍵を使用してFlash内でこれを復号化したい。PHPが送信するメッセージをデコードしたい場合は、フラッシュファイルを逆コンパイルし、Flashで使用している秘密鍵を見つけてメッセージをデコードしてからデコードする必要があります。

ここに投稿した理由は、暗号化/復号化に秘密鍵のみを使用できる暗号化アルゴリズムを使用したいからです。

私は暗号化の分野で新しいので、これについていくつかの提案が欲しいです。

ありがとうございました!

4

3 に答える 3

3

「共有秘密鍵」は対称鍵と呼ばれます。現在使用されている標準の対称アルゴリズムはAESです。phpまたはflashにAESを使用する機能があるかどうかはわかりませんが(Googleにはあります)、ある場合は、コードにAESキーをハードコーディングし、それを使用してデータを暗号化および復号化できます。ただし、キーをハードコーディングすることは非常に悪い暗号化であり、難読化にすぎません。

覚えておくべきもう1つのことは、使用している暗号モードです。暗号ブロック連鎖(CBC)では、初期化ベクトル(ハッシュのソルトのようなもの)を使用する必要があるため、同じキーで暗号化された同じ値の2つで、IVが異なると、暗号文が異なります。ECBは初期化ベクトルを必要としませんが、安全性は低くなります。あなたのニーズのために私はECBを使うので、IVについて心配する必要はありません。

グーグルは情報を見つけるための非常に良い方法です、あなたはそれを使うべきです。

于 2011-06-16T18:29:46.107 に答える
1

簡単に検索したところ、ActionScript3がASCrypt3ライブラリを介した暗号化をサポートしていることがわかりました。Webサイトによると、AESRijndaelがサポートされています。

Rijndaelは、mcrypt拡張機能を使用するPHPでもサポートされています。マニュアルから抜粋したかなり良い例を次に示します。

$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 に答える