FlashとJavascriptで簡単な暗号化(難読化)の方法は?


FlashからJavascriptに数字をわたすというものを作っているのですが、
渡す数字をぱっと見ただけではわからないようにしたいと思っています。

当初、16進数への変換を考えていましたが、数字が10桁を超える場合もあるため、
「JavascriptでParseIntが正常に動かない」ことがあり、困っています。

何か、数字を暗号化(難読化)する方法で、Flashから渡したものをJSでデコードできるものはないでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2008/02/03 23:11:33
  • 終了:2008/02/10 23:15:02

回答(3件)

id:khoshi3 No.1

khoshi3回答回数71ベストアンサー獲得回数122008/02/03 23:48:52

ポイント30pt

簡単な暗号(難読化)でよいのであれば、BASE64でエンコード・デコードされるのはいかがでしょうか? 数値に限らず文字列に対し使えます。

「00000123」をBASE64エンコードすると、「MDAwMDAxMjM=」となり、デコードで戻せます。

下記にjavascriptとFlash用のライブラリが公開されています。

  • 高度な JavaScript 技集 - base64.js:

http://www.onicos.com/staff/iz/amuse/javascript/expert/

  • Base64 Encode,Decode Library v1.02 for FlashMX (ActionScript)

http://fsozai.hp.infoseek.co.jp/AS/library/base64.html

ただしエンコード文字列には'+'と'/'が含まれるのでURL内に記載するときは注意が必要です。

http://ja.wikipedia.org/wiki/Base64

また、16進数でもそうですが、エンコードされた文字列はだれでもデコードできてしまうので、簡単じゃない暗号化をしたい場合には、

数値文字列をあらかじめなんらかの暗号をかけてからBASE64化する、Blowfishなどの暗号専用の仕組みを使う、など、別の手段が必要と思います。

id:dingding

ありがとうございます。文字列も使えるのはありがたいです。

しかし、URLに使いたかったので、もしかしたらまずいかもしれないです。

'+'と'/'を使われなくする方法はあるのでしょうか?

2008/02/04 00:12:37
id:khoshi3 No.2

khoshi3回答回数71ベストアンサー獲得回数122008/02/04 00:39:57

ポイント30pt

先ほどの回答に補足いたします。

>'+'と'/'を使われなくする方法はあるのでしょうか?

64文字あるうち、記号は2つのみなので、

  • javascriptでのエンコード後、URL文字列にするときに('+','/')を('-','.')に置換
  • ActiveScript(Flash)でのデコード前に、('-','.')を('+','/')に置換

で大丈夫です。(私が以前ファイル名用にBASE64エンコードを使ったときは、('-','_')にしました。)

id:dingding

ありがとうございます。

これで解決できそうです。

2008/02/04 02:25:30
id:KUROX No.3

KUROX回答回数3542ベストアンサー獲得回数1402008/02/04 07:13:46

ポイント20pt

XOR暗号なんか手軽ですけどね。

http://www.geocities.jp/ky_webid/algorithm/018.html

id:dingding

できれば、サンプルが見てみたいです。

Javascriptで「1234」をXOR暗号化するにはどうすればいいのでしょうか?

2008/02/04 18:06:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません