メイン ActionScript 3.0 特設会議室 ActionScript3.0で複合化 | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
sophia | Åê¹ÆNo.40720 投稿日時: 2008-11-11 9:37 |
新米 居住地: 投稿: 6
使用環境:
|
Re: ActionScript3.0で複合化 はい、今回は本当にありがとうございました!
|
kool_it | Åê¹ÆNo.40706 投稿日時: 2008-11-10 20:47 |
常連 居住地: 東京 投稿: 92
使用環境:
win7::Win2K:Flash CS5.5: 10.7:Flash CS5.5: |
Re: ActionScript3.0で複合化 引用:
それでいいと思います。 まあ、私の方も暗号化は初めてでしたので、色々と勉強になりました。 sophiaさんも「調べる」能力をがんばってつけてください! それでは。
|
sophia | Åê¹ÆNo.40705 投稿日時: 2008-11-10 20:00 |
新米 居住地: 投稿: 6
使用環境:
|
Re: ActionScript3.0で複合化 ありがとうございます!!!
ついに復号化に成功しました。 ご指摘頂いた 「本当は読み込んだデータ長をきちんと変換する必要があるのでしょうけど…」 の箇所については下記のように変更しました。 --------------------------------------------------- byte[] buf = new byte[inFile.available()]; inFile.read(buf); byte encrypted[] = cipher.doFinal(buf); fos.write(encrypted, 0, encrypted.length); --------------------------------------------------- 今回の原因としては下記のような認識でよろしいのでしょうか? 「DES形式で暗号化されたデータ長は必ず8の倍数となるはずだが、 それを暗号化される前のサイズ長を用いて書き出していた。 その為復号時に8の倍数ではないからエラーとなっていた。」 本当にありがとうございました。 ActionScriptに慣れていないことに加え、暗号化についても 理解できていなかった為にご迷惑をおかけしました。 あつかましいお願いですが、もしまだ何かご指摘やアドバイスを頂けるようでしたら、 是非お願い致します。 |
kool_it | Åê¹ÆNo.40704 投稿日時: 2008-11-10 19:27 |
常連 居住地: 東京 投稿: 92
使用環境:
win7::Win2K:Flash CS5.5: 10.7:Flash CS5.5: |
Re: ActionScript3.0で複合化 このままでは暗号化される前の(8ビットに成形されていない)データ長が書き出されてしまいます。
本当は読み込んだデータ長をきちんと変換する必要があるのでしょうけど、 これで動くようなので、とりあえず。
|
sophia | Åê¹ÆNo.40700 投稿日時: 2008-11-10 14:19 |
新米 居住地: 投稿: 6
使用環境:
|
Re: ActionScript3.0で複合化 kool_it様ご回答ありがとうございます。
ご教授頂いたとおり、「new NullPad();」の所を「new PKCS5();」に変更してみましたが、 未だ下記のエラーが発生します。 --------------------------------------------------------- Error: ECB mode cipher length must be a multiple of blocksize 8 at com.hurlant.crypto.symmetric::ECBMode/decrypt() at Main/decrypt() at Main/compFunction() at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at flash.net::URLLoader/onComplete() --------------------------------------------------------- 上記以外で変更しているのはkeywordの値を"12345678"にしているだけです。 ちなみにJava側のテスト用コードはこのようになっております。 --------------------------------------------------------- package jp.test; import java.io.*; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; public class FileEncode { public static void main(String[] args) throws IOException { FileInputStream inFile = new FileInputStream("C:/inImg/sample.jpg"); File outFile = new File("C:/outImg/sample1.jpg"); outFile.createNewFile(); FileOutputStream fos = new FileOutputStream(outFile); int count = 0; try { // キーを生成 String key = "12345678"; DESKeySpec dk = new DESKeySpec(key.getBytes()); SecretKeyFactory kf = SecretKeyFactory.getInstance("DES"); SecretKey sk = kf.generateSecret(dk); // 暗号化 Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, sk); byte[] buf = new byte[50000]; while((count = inFile.read(buf)) != -1) { byte encrypted[] = cipher.doFinal(buf); fos.write(encrypted, 0, count); } inFile.close(); fos.close(); } catch(Exception e) { e.printStackTrace(); } } } --------------------------------------------------------- 何か問題がありますでしょうか。。。 >961832p様 「それから、共通鍵や秘密鍵をSWF内に含めると、セキュリティ的に危険なので対策が必要みたいです。」 ↑これについては確かにその通りだと思いますので、後で考えようと思います。 ありがとうございます。 |
kool_it | Åê¹ÆNo.40698 投稿日時: 2008-11-10 13:03 |
常連 居住地: 東京 投稿: 92
使用環境:
win7::Win2K:Flash CS5.5: 10.7:Flash CS5.5: |
Re: ActionScript3.0で複合化 paddingの設定がおかしいのではないでしょうか?
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/security/jce/JCERefGuide.html#trans
NullPadで指定されているところをPKCS5にしてみてください。
|
961832p | Åê¹ÆNo.40688 投稿日時: 2008-11-8 16:04 |
常連 居住地: Akiruno-shi 投稿: 155
使用環境:
:AS3: - Adobe Flex SDK, Eclipse, AIR GEAR - LB.Log AS3, Alcon2 :AS2: - AMES(ASDT, MTASC, Eclipse, swfmill) - Natural Entry Point Method - LB.Log, Zeroi Pro, Firefox, Chromium(Iron), IE ---------------- Pro, |
Re: ActionScript3.0で複合化 このスレッドで AS3Crypto の存在を知り、自分も挑戦してみることに。 デモのソースとにらめっこした結果、公開鍵暗号方式(RSA、強度512bit)で、データも画像ではないので参考にならないかもしれませんが、テキストを入れてボタンを押すと暗号化/復号化するものを作ってみました。 ・暗号化テストページ ・復号化テストページ それから、共通鍵や秘密鍵をSWF内に含めると、セキュリティ的に危険なので対策が必要みたいです。 ・Adobe - デベロッパーセンター : より安全なSWF Webアプリケーションの作成(「SWFファイル内の鍵に対する脅威」の部分) ソースを見ると、証明書から取ってこれそうだし何かと使えそうなライブラリですね。自分はAS3にまだ慣れていないので今回勉強になりました(ByteArrayとか便利ですね)。
|
sophia | Åê¹ÆNo.40678 投稿日時: 2008-11-7 18:43 |
新米 居住地: 投稿: 6
使用環境:
|
Re: ActionScript3.0で複合化 サンプルコードのご提供ありがとうございます!!
早速試してみたのですが下記のエラーが発生しております。 Error: ECB mode cipher length must be a multiple of blocksize 8 at com.hurlant.crypto.symmetric::ECBMode/decrypt() at _fla::MainTimeline/decrypt() at _fla::MainTimeline/compFunction() at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at flash.net::URLLoader/onComplete() これは私の用意した暗号化ファイルに誤りがあるためなのでしょうか? たびたびの質問で申し訳ございません。 ※ちなみに用意した暗号化画像ファイルはJavaでCliper.getInstance("DES")で暗号化しており、 キーは"abc12345"に設定しているため、頂いたサンプルのキーも"abc12345"に変えて実行しております。 ------------------------------------------------------- 追記 いろいろ試してみました。 検討違いかもしれないのですが、 「var cipher:ICipher = Crypto.getCipher("des-ecb",Hex.toArray(Hex.fromString(keyword)),pad);」 を 「var cipher:ICipher = Crypto.getCipher("des",Hex.toArray(Hex.fromString(keyword)),pad);」 に変えてみたら「cipher.decrypt(data)」の箇所で『#2006: 指定したインデックスが境界外 です。』というエラーになりました。 |
kool_it | Åê¹ÆNo.40677 投稿日時: 2008-11-7 17:16 |
常連 居住地: 東京 投稿: 92
使用環境:
win7::Win2K:Flash CS5.5: 10.7:Flash CS5.5: |
Re: ActionScript3.0で複合化 ドキュメントクラス Main.as
こんな感じでしょうか
|
sophia | Åê¹ÆNo.40674 投稿日時: 2008-11-7 16:02 |
新米 居住地: 投稿: 6
使用環境:
|
Re: ActionScript3.0で複合化 質問が抽象的で申し訳ありません。。。
お恥ずかしながらまだActionScriptを始めて2週間程度の初心者で、 分からないことが分からない状態でして…。 本来であればもう少し順序立ててステップアップしていきたいのですが、 今回は時間に限りがありまして背伸びをしている次第です。 手順としましてはkool_it様のおっしゃる通りで実装しようとしておりました。(実装する術は持っておりませんが><) 恐縮ですがサンプルコードをご提供頂けないでしょうか? |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |