0

私は、いくつかのメソッドといくつかの静的変数を持つ Java のクラス、たとえば A を持っています。

Android で WebView ベースのアプリケーションを構築しています。addJavascriptInterface メソッドを使用して、クラス A のインスタンスを挿入しました。(アプリは実際にPhonegapを使用しています)

渡された公開鍵 K(n, e) を使用して RSA 暗号化を実行する Javascript 関数があります。

encryptString(n, e);

「n」は、次のように呼び出されるクラス A のメソッドによって返されます。

var keyn = window.A.load("publicKey");

これは私が問題を抱えているところです。'n' を文字列として渡し、'e' = "10001" も文字列として渡すと、暗号化はうまく機能します。しかし、メソッドから受け取ったkeynを渡すと、うまくいきません。

encryptString("42342abcdefg2232", "10001"); // Works

encryptString(keyn, "10001"); // Doesn't work :(

keyn を logcat に記録したところ、変数 keyn で値が正しく受信されていることがわかります。

それでは何が問題なのですか?

PS: 2 つの異なる RSA 暗号化ライブラリを試しましたが、両方で同じ問題が発生しました。したがって、おそらく私が使用している暗号化コードの問題ではありません。

4

1 に答える 1

0

私が見つけた解決策は、私がkeynasを渡しnew String(keyn)、それが機能したことでした。旅の中で、Javascript の文字列リテラルと文字列オブジェクトの違いを見つけました。WebView基本的に を返しObject、関数に渡す前に文字列オブジェクトに変換する必要があると思います。

もっと詳しく説明できる人なら誰でも歓迎します。

于 2013-03-28T11:30:41.640 に答える