Titanium (ターゲット: iOS および Android) プロジェクトで sjcl (Stanford Javascript Crypto Library) を使用してテキストを暗号化しようとしています。私は他のオプションなしで、最も簡単な方法を使用しています:
sjcl.encrypt("mypassword", "mytext");
アプリはこの行でハングするだけで、エラーや役立つ情報は得られません。私は何が欠けていますか?
ありがとう!
Titanium (ターゲット: iOS および Android) プロジェクトで sjcl (Stanford Javascript Crypto Library) を使用してテキストを暗号化しようとしています。私は他のオプションなしで、最も簡単な方法を使用しています:
sjcl.encrypt("mypassword", "mytext");
アプリはこの行でハングするだけで、エラーや役立つ情報は得られません。私は何が欠けていますか?
ありがとう!
コードはおそらく正常に実行されます。ただし、最初のアルゴリズムは、PBKDF2 関数を使用してパスワードからキーを作成しようとします。パスワードには通常、暗号化で安全に使用するのに十分なエントロピーが含まれていないため、この関数は意図的にパスワードを強化するのに時間がかかります。(デバッグ) フレームワークが基礎となるハッシュ関数を実行するのに多くの時間がかかる場合、アプリケーションがハングしているように見えることがあります (CPU 使用率を確認してください)。
解決策は、PBKDF2 が入力として受け取る反復回数を減らすか、Java PBKDF2 を使用することです。どちらもおそらく SJCL への下位レベルのアクセスを必要とします。最後に、Java プラットフォームでの暗号化に JavaScript ライブラリを選択すると、パフォーマンスが大幅に低下します。この目的のために、SJCL を削除することを検討することをお勧めします。