問題タブ [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.
ios - RNCryptor をインポートした後のアーキテクチャ armv7 の未定義シンボル
https://github.com/rnapier/RNCryptorにある RNCryptor をアプリにインポートしました。ただし、ログにこれに関する 3 つのエラーが記録されています。
これは通常、インポートされたクラスがターゲットに含まれていない場合に発生することがわかりましたが、ビルドフェーズを確認済みで、インポートされたすべてのクラスがそこにあります。何が原因なのかわかりません。これらのクラスのコードには触れていません。また、ターゲットを数回クリーニングしました。
ios - RNCryptor を使用した後にコンパイルできない
ここから RNCryptor を使用しています。しかし、アプリを正しくコンパイルできないようです。ログに次のエラーが表示されます。
ここで何が悪いのか誰か教えてもらえますか?
python - RNCryptor と Python サーバー
RNCryptor を使用して、iOS で NSData を暗号化し、Python サーバーに送信しています。これまでのところ、そうです。私の問題は、サーバー側で NSData を復号化しようとしたときに発生します。
RNCryptor はすべての関連データを暗号化されたヘッダーに埋め込みますが、受信したデータを復号化するためのサーバー側で IV を取得できません。
何か案が?
構成: iOS 5.0 と RNCryptor / Python + Tornado Web サーバー
ありがとう!
php - PHP での RNCryptor AES256 暗号化と復号化
RNCryptorを使用して、iOS 側で AES256 暗号化を実行し、PHP のリモート サイトで AES256 復号化を実行しようとしています。しかし、phpで正しい復号化されたデータを取得できません。私が間違っていることがあれば、レビューを手伝ってください。
以下はiOS用の私のコードです。
次に、encryptedData を PHP のサーバーに投稿します。以下は私のPHPコードです。
php - PHPAES256暗号化=>RNCryptorRNDecryptorが空白を返す/HMACの不一致
PHP 5.4(mcrypt)、RNCryptor 2、iOS6を使用します。
PHP関数は、https://github.com/rnapier/RNCryptor/wiki/Data-Formatから参照されるように、すべてのヘッダーを含むbase64を作成します。
RNEncryptorと以下のPHPEncrypt関数の両方からbase64文字列を復号化できるPHP復号化関数は、期待どおりにデータを返します。
以下のPHP暗号化関数のbase64でRNDecryptorを使用すると、以下のXCode出力に示すようにデータは返されません。
PHP関数:
PHP関数呼び出し:
iOS:
XCode出力:
データ=<>、(null)
これは、RNDecryptor -finishでHMAC検証をコメントアウトするときに実行されます。これらのセクションのコメントが解除されると、HMAC不一致エラーが発生します。
data =(null)、Error Domain = net.robnapier.RNCryptManager Code = 1 "HMAC Mismatch" UserInfo = 0x1e564280 {NSLocalizedDescription = HMAC Mismatch}
ios - RNCryptor が JSON 文字列で動作しない
RNCryptor を使用して、Web サービスに送信する JSON 文字列を暗号化/復号化する方法を次に示します。私は悪い習慣かもしれない静的 IV 変数を使用していますが、それに集中しないでください。これが私がやっている方法です:
注:ここ(ページの下部) にあるMatt Gallagher の NSData+Base64 カテゴリを使用しています。
のような文字列を使用すると、hello world
正常に動作します。文字列を使用するときは{"username":"developer","password":"abcdefG*12"}
、エンコーディングと関係があると思いますが、何を使用すればよいかは本当にわかっています。
その文字列を暗号化するとbase64文字列が得られ、それを復号化しようとすると空の文字列が得られます。
アップデート
奇妙なのは、文字列がjson形式である場合にのみ失敗することです。:
json文字列の が原因で失敗しているようです。:
最初にそれを試したことが原因だと思いましたが、JSON要件のいずれかを破った場合、さらに調査すると機能,
しなくなりました。ただし、動作するので、何が間違っているのかわかりません。いずれにせよ、現在の流れを再設計することができると思います{
}
RNEncryptor
更新 2
これらのメソッドを呼び出す場所は次のとおりです。
ios - iOS で RNCryptor を使用して大きなファイルを非同期で復号化する
iOS で RNCryptor を使用して大きなファイルを非同期で復号化する必要があります (プログレス バーを表示するため)。私はどこにも例を見つけられなかったので、私が正しいと推測したことを試しましたが...私が思いついたものは機能しません:復号化のハンドラーは決して呼び出されず、スレッドはすべてのデータを送信した後に EXC_BAD_ADDRESS でクラッシュしました関数の最後に。
(明らかに、tempPath
は暗号化されたファイルへのパスです。decryptedPath
は復号化されたデータが書き込まれるパスです)。
また、私は ARC を初めて使用するので、これはメモリまたはディスパッチに関連する問題である可能性があります。
助けてくれてありがとう。
rncryptor - "PROGRAM RECEIVED SIGNAL: EXC_BAD_ACCESS" with RNCryptManager.m
この暗号化/復号化は初めてで、次のエラーを受け取りました
"PROGRAM RECEIVED SIGNAL: EXC_BAD_ACCESS"
IN RNCryptManager.m の DEcryptdata
RNCryptmanager.h および .m ファイルを使用して、パスワードを「password」として文字列を暗号化/復号化しようとすると
ios - ディスパッチ キューと非同期 RNCryptor
これは、 iOS の RNCryptor で大きなファイルを非同期に復号化するためのフォロー アップです。
この記事で説明されている方法を使用して、ダウンロードされた大きなファイル (60Mb) を非同期で復号化することができました。Calman の回答で修正されました。
基本的には次のようになります。
ただし、まだ問題に直面しています。データ全体が復号化される前にメモリに読み込まれます。「送信、受信、送信、受信、.. .」。
小さな (2Mb) ファイル、またはシミュレータ上の大きな (60Mb) ファイルの場合は問題ありません。しかし、実際の iPad1 ではメモリの制約によりクラッシュするため、明らかにこの手順を実稼働アプリに適用することはできません。
ループdispatch_async
でやみくもにデータを送信するのではなく、使用してデクリプターにデータを送信する必要があるように感じますが、完全に失われています。while
私はもう試した:
- の前に独自のキューを作成し、
while
使用するdispatch_async(myQueue, ^{ [decryptor addData:data]; });
while
同じですが、ループ内でコード全体をディスパッチしますwhile
同じですが、ループ全体をディスパッチします- 自分のキューの代わりに
RNCryptor
-providedを使用するresponseQueue
これら 4 つのバリアントの中では何も機能しません。
ディスパッチ キューについてはまだ完全には理解していません。ここに問題があると感じています。誰かがこれに光を当てることができれば幸いです。
objective-c - NSMutableURLRequest POSTメッセージのBase64の問題?
アプリとサーバー間の通信に問題があります。RNCryptorを使用してメッセージを暗号化し、それをbase64でエンコードして、リクエストでサーバーに転送します。これは、DATAヘッダーと、投稿データとしてのhttp本文の両方で行われます。POSTを介してbase64でエンコードされたメッセージを変換および転送する方法を間違えていると思います。
暗号化されたメッセージをヘッダー経由で受信すると、毎回完全に正常に復号化されます。ただし、POSTデータを介してメッセージを取得すると、さまざまな結果が得られます。ほとんどの場合、失敗します。それ以外の場合は、部分的に復号化され(最初の数文字)、20分の1程度の復号化が成功します。
Objective-cのコードは次のとおりです。
PHPコード:
よろしくお願いします!