問題タブ [rncryptor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JNCryptor/RNCryptor ライブラリが InvalidHMACException をスローするのはなぜですか?
iPhone アプリと Java サーバーソケットで AES256 対称暗号化を使用したいと考えています。現在、Rob Napier の RNCryptor/JNCryptor ライブラリを使用しています。暗号化された文字列を再び復号化できるため、iPhone での暗号化はうまく機能しているようです。しかし、Java サーバー ソケットで文字列を復号化しようとするとすぐに、次の例外がスローされます。
暗号化されたデータ (iOS/Objective-C) を送信するための関連するクライアント コード スニペットを次に示します。
そして、ソケット (Linux/Java) で暗号化されたデータを受け取る、対応するサーバー コードを次に示します。
誰かが私が間違っていることを知っていますか? データを送信する前に、エンコードに Base64 または類似のものを使用する必要がありますか? どんな助けでも大歓迎です。
編集:これが解決策です。文字ベースの入力ストリームを使用する代わりに、ソケットから直接 InputStream を使用して、生のバイトを読み取って復号化アルゴリズムにフィードします。
javascript - SJCL CBC モードが復号化されない
SJCL を使用する RNCryptor を使用します。16 進メッセージを復号化しようとしていますが、CBC モードを使用すると、状況がおかしくなります。どうやら、CBC を使用するときに beware ステートメントを宣言する必要があり、エラーが発生します。
ソルト、キー、およびハッシュに関して、すべてが Python 側の暗号化と一致します。しかし、私はこのエラーが発生します:
このメソッドは非推奨になっていると思われるため、この CryptoJS メソッドを使用しようとしました。
これは空白の文字列を返しました。
私は本当に近づいているように感じます。この最後の部分で助けが必要です。ありがとう。
javascript - 「無効な AES ブロック サイズ」SJCL 復号化
SJCL を使用するRNCryptor-jsを使用して AES を復号化しようとしています。各端 (もう一方の端はRNCryptor-python ) ですべての手順をログに記録した後、キー、ソルト、HMAC ハッシュ、すべてが一致します。しかし、最終ステップに到達すると:
エラーが発生します:
完全なコードは次のとおりです。
PBKDF2:
復号化 (16 進入力を受け取ります):
エラーは、decrypted
が定義されている最後から 2 番目のステートメントでスローされます。
sjcl 例外を調べたところ、長さ 4 の入力を探しているように見えますが、これは WordArray であると推測しています。有効な入力を取得する方法がわかりません。私が言ったように、暗号文、iv、hmac タグ、ソルトはすべて JavaScript 側で適切にスライスされています。エンコーディングの問題かもしれません。
このエラーは、json (形式: '{"key":"value"}') でのみ発生しているようにも見えます。「Hello, world」などを試したところ、エラーなしで 4 ワードの配列が返されました。
助言がありますか?
ios - 別のフレームワークを必要とする (依存する) フレームワークの作成
Swift で Cocoa Touch Framework Project を使用してフレームワークを作成したいと考えています。ただし、このフレームワークは、Objective-C ベースの RNCryptor と呼ばれる別のフレームワークの上に構築しています。Xcode でフレームワークを作成する方法に関するさまざまなチュートリアルを見てきましたが、独自の依存関係を持つフレームワークをカバーしているものはありません。
フレームワーク プロジェクトを作成してから、CocoaPods を使用してその依存関係を管理しようとしました。ただし、エラーが表示されます:「依存関係を確認してください」コマンドを実行できません...」
問題は、Xcode で別のフレームワークの上にフレームワークを作成することは可能かということです。もしそうなら、どのように?
ios - kRNCryptorAES256Settings 参照エラー
アプリで RNCryptor を使用して、データの暗号化を行おうとしています。
以下のコードを見てください。
アーキテクチャ i386 の未定義シンボル:
"_kRNCryptorAES256Settings"、参照元: __TFC8UtraceUI24ChatBubbleViewController21textFieldShouldReturnfS0_FCSo11UITextFieldSb in ChatBubbleViewController.o ld: アーキテクチャ i386 のシンボルが見つかりません。
アンダースコア付きの定数名を検索しようとする理由がわかりません。理想的には、bridgesupport およびその他のヘッダー ファイルにある kRNCryptorAES256Settings を検索しようとする必要があります。
何がうまくいかないのでしょうか?
ありがとう !
xcode - コード署名 .framework 時のエラー
CocoaPods を使用してRNCryptorフレームワークをインストールしました。これは私のアプリケーションで完全に機能し、xcode を使用して手動でアプリケーションをアーカイブすると完全に機能します。
しかし、コマンドでターミナルを使用してアーカイブしようとすると:
エラーが発生します:
ios - 暗号化と復号化のためのパスワードを生成して保存するための戦略
RNEncryptor
次のように、暗号化と復号化にandクラスを使用してRNDecryptor
います。
アプリで初めてデータを暗号化する必要があるときは、RNCryptor
次のようにクラスを使用してパスワードを生成します。
この生成されたパスワードをアプリのキーチェーンに保存し、その後のすべての暗号化と復号化に使用します。
これは暗号化/復号化の良い戦略ですか、それとも誰かがそれに欠陥を見ることができますか? 代わりに、AES キーを生成してキーチェーンに保存し、パスワードではなくそれを使用する必要がありますか?
編集: Rob Napierの回答に基づいNSProcessInfo
て、クラスの使用からクラスの使用にパスワードを生成する方法を上記で変更しました。RNCryptor
それはさておき、AESキーではなくパスワードを使用するという一般的な戦略が正しく安全であるかどうかを知りたいと思っています。