6

ユーザーはお互いにメッセージを送信し、rails アプリを介して他のユーザーの個人情報を公開しています。

目標は、メッセージを保護することです。そのため、システム管理者もデータベース リークもデータを危険にさらすことはできません。受信者キーによる Javascript クライアント側暗号化、暗号化されたデータはデータベースに保存され、受信者側で復号化されます。キーはシステムに保存されません。

理にかなっていますか?解決策はありますか?どうもありがとう!

更新: 非対称暗号化を意味します。ユーザーごとに 2 つの鍵: 暗号化用に 1 つの公開鍵、復号化用に 1 つの秘密鍵。そして、アプリケーション自体のパスワード。ユーザーは自分のパスワードを使用してログインし、メッセージを作成します。このメッセージは、クライアント側で受信者の公開鍵 (システムに保存) で暗号化され、データベースに保存されます。受信者はパスワードを使用してログインし、秘密鍵を入力してメッセージをデコードします。復号化もクライアント側で行われ、秘密鍵はサーバーに送信されません。

4

3 に答える 3

3

もちろん。このhttp://crypto.stanford.edu/sjcl/を使用してください。特にデモhttp://bitwiseshiftleft.github.com/sjcl/demo/を見てください

キーを保存しない唯一の方法は、ユーザーがパスワードからキーを取得することです (サイトで使用するものではありません)。これは問題なく、上記のライブラリが行っていることです。ただし、パスワードを忘れた場合、彼らを助けることはできません。

于 2012-07-16T20:58:52.460 に答える
1

クライアント側では、openpgp.jsを使用できます。鍵の作成、署名、暗号化/復号化などに lib を使用するのは非常に簡単です。

于 2016-01-02T01:21:16.643 に答える
0

解決策の 1 つかもしれません。jsbn ライブラリは、純粋な JavaScript による大規模な数学の高速でポータブルな実装であり、デスクトップおよびモバイル ブラウザーで公開鍵暗号やその他のアプリケーションを有効にします。

http://www-cs-students.stanford.edu/~tjw/jsbn/

RSA 暗号化デモhttp://www-cs-students.stanford.edu/~tjw/jsbn/rsa2.html

于 2012-07-16T21:26:14.347 に答える