2011-07-25 11 views
2

「オフラインモード」でHTML5キャッシュを使用するアプリがあります。アプリケーションがオフラインの場合、データはlocalStorageのjavascript経由で保存され、アプリケーションがオンラインに戻ったときにサーバーに送信されます。私はこのデータの一部をlocalStorageに貼り付ける前に暗号化によって実行して、サーバー上でしか解読できないようにしたいと思います。Javascript to Ruby Encryption

公開鍵/秘密鍵がこれを行う方法であると私は考えていました。それは物事について合理的な方法ですか?この種のクライアント側を処理するための良いjavascriptライブラリはありますか?このサーバー側を扱うための良いルビー/レールライブラリ/宝石はありますか?

+0

もっと教えてください。なぜここで暗号化が必要ですか?ユーザーがデータを読み込まないようにするには、実行時にJSを編集してデータを読み込むことができます。さらに、ユーザは、公開鍵を持っていれば、暗号化されたストレージに任意のデータを格納できます(署名されていないため、この暗号化されたコンテンツは信頼できません)。 –

+0

jsは、私たちが実際にそれを操作することを心配していないところまで難読化されています(本当に献身している人は知っていますが、このレベルの保護はプロジェクトの範囲で十分です)。ほとんどの場合、localStorageに保護のレイヤーを追加して、ユーザーが入力した値でサーバーが受信できるようにしながら、読み込みを容易にします。 –

答えて

1

ローカルストレージ内のデータのみを暗号化する場合は、公開鍵暗号を使用できます。 JSでキーを生成せず、サーバー側で公開鍵を送信しないでください。残念ながら、私はJavascriptで十分にテストされ、維持された暗号ライブラリを知らない。

あなたが目指しているセキュリティレベル(ユーザーがデータを読み取るのを防ぐためのわずかなレイヤー)では、必要な実装を選択できます。 サーバー側でOpenSSL gemをOpenSSL :: PKey :: RSAクラスで使用できます。

これを読んでいる人は、次のように読んでください.Javascript暗号、it's badを使用しないでください!

0

このクライアント側を扱うために、jQuery用のhandleStorageプラグインがあります。これは本当に使いやすいですが、GPLです。ライセンスの問題でそれを使用できない場合は、jStorage jQueryプラグインとblowfish jQueryプラグインを組み合わせることができます。