Archive for the ‘Flash’ tag
FlashとPHPで可逆暗号処理(as3crypto, MCrypt)
とあるお仕事で、Flash(AS3)とPHPとの間でテキスト通信内容の一部を可逆暗号処理する必要が出てきて、調査をしていました。
おそらく、AS3ならas3cryptoが、PHPならMcrypt関数がベーシックなチョイスだろうと、早速使っていたんですが、これがまたうまいこといきません。
まだ完全に理由が調査できていないんで、はっきりとしたことが言えないのがあれなんですけど、これから調査する時間があるかどうかわからないんで、状況を書くだけ書いておきます。
- as3ctyptoでblowfish暗号(CBCモード)の初期化ベクトルのサイズがPHPのと合わない。
自分も暗号化の知識とかPHPのMCrypto関数の使用方法が完璧かと言われると、ちょっと自信ないです。でも調べる限り、blowfishは初期化ベクトルのサイズが64ビット、つまり8バイトなはずなんですけど、as3cryptoで初期化ベクトルを取得すると16バイトになってしまう。どうやっても。PHPでは8バイトを求められる…う〜む。ASだけだと動くんですよね。 - では、ということで、初期化ベクトルを使わなくてもいい(セキュリティ的にはよくないですが)ECBモードで暗号化→復号化してみたところ、PHPで暗号→AS3で復号のパターンで、暗号化対象のデータが32バイトを超えるとas3cryptoが値を返してこなくなる。31バイトまではうまくいきました。これはもしかしたら自分の認識が足りないだけかも。
- それぞれパディングの方法が違うみたい。as3cryptoは一応選べるので、今回はPKCS#5方式でやっていたが(というか、なぜかNullPadでは動きませんでした)、PHPだと自分でパディングするしかない?のか、MCrypt関数にはそれらしきモノは見当たらず。結果AS3暗号化→PHP復号化すると、データのおしりにゴミが残ってしまう…。
Blowflshという暗号方式を各言語で別々に実装しているから、挙動が異なるのはわからんでもないけど…さすがに知識が中途半端では原因究明はちょっと厳しいですね。時間がかかる。
【Works】 YOU CAN’T FIX THIS - 世界は不正を許しません
8年前のアメリカ大統領選挙で、フロリダの投票数を巡ってちょっとした争訟が起こりましたよね。次の大統領選挙では、そんなことは許しません。アメリカという日本以外の国の代表を決める選挙なんで、僕らに直接の投票権はないですが、現政権のやらかした世界にとってマイナスな出来事を改めて思い返してみると、「他の国のことなんだから、関係ないじゃん」、なんて、あなた言えますか?
だったら僕らは僕らで投票しようよ、ってのがこのサイトです。当然不正はしませんのでご安心を。
企画・制作:Naked Communications Tokyo + Antonymous Inc.+ dynalogue™
音楽:Mush.aiff
