問題タブ [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.
objective-c - 初心者のためのAES暗号化/復号化
私はObjective-CでNSStringをNSStringとNSDataの両方に暗号化しようとしているので、検索を開始しました。
私はここから始めましたが、残念ながらそれは私の頭をはるかに超えていました。
それから私はこの投稿に自分自身を見つけました、そしてそれは非常にフォローしやすいことに気づきました、それで私は一緒に行って実装を理解しようとしました。実装を調べた後、私は投稿の2番目の答えを見て、彼がより適応性のある実装を持っていることを確認しました。それが私を彼の要点に導きました。要旨のreadmeによると、彼は"took down this Gist due to concerns about the security of the encryption/decryption"
。そのため、上からの実装のセキュリティにもセキュリティ上の欠陥があると思います。
しかし、その要点から、彼は私が暗号化に使用できる別の代替案について言及しました。コードを見てみると、NSDataがで生成されていることに気づきました"a header, encryption salt, HMAC salt, IV, ciphertext, and HMAC"
。同じライブラリを使用してデコードするためにそれを処理する方法を知っていますが、サーバーの人に何を送信しているのかよくわからない場合、これをサーバーの人に渡すにはどうすればよいですか?
そのすべての根底にあるのは、私が頭を抱えていることです。私が上で言ったことを考えると、これについて多くのことを学ぶ時間がないことを知っているので、絶対に必要な場合を除いて、秘密鍵が与えられた場合、このエンコード/デコードプロセスをどのように処理するのが最善ですか?私が設計していないサーバーにそれを出荷するという最終目標は?(文の実行はどうですか!)
ios - iOS で RNCryptor を使用して大きなファイルを暗号化/復号化する際のメモリの問題
RNCryptor を使用して、iOS で大きなファイル (600 MB 以上) を暗号化および復号化しようとしています。githubで、ストリームでライブラリを非同期的に使用する方法のサンプル コードを見つけました。このコードは、この同じ件名に関する質問に対するRob Napier の回答に似ています。
ただし、コードを正しく実装したと思いますが、アプリは最大 1.5 GB のメモリを使用します (iPad 6.1 シミュレーターで)。このコードは、アプリがメモリ内に複数のデータ ブロックを保持するのを防ぐためのものだと思っていましたか? それで、何がうまくいかないのですか?
私のコントローラーでは、暗号化/復号化要求でメッセージを送る「CryptController」を作成します。
CryptController には次のものがあります。
Allocation Instrument を使用してプロファイリングすると、一貫して増加している割り当てカテゴリはmalloc 32.50 KB
、malloc 4.00 KB
、NSConcreteData
およびNSSubrangeData
です。特に はmalloc 32.50 KB
大きくなり、1 GB を超えます。担当の発信
者[NSConcreteData initWithBytes:length:copy:freeWhenDone:bytesAreVM:]
はですNSConcreteData
担当の発信者は
-[NSData(NSData) copyWithZone:]
です。
Leaks Instrument を使用してプロファイリングすると、リークは見つかりません。
私はObjective-Cが初めてで、私が理解したことから、新しいARCはメモリの割り当てと割り当て解除を処理することになっています。メモリに関連するものをグーグルで検索すると、ARCを使用していない(または執筆時点では存在していなかった)と仮定した情報がすべて見つかります。手動でメモリの割り当てを解除しようとするとコンパイルエラーが発生するので、確かにARCを使用しています。
誰かがこれで私を助けることができれば、それは大歓迎です! さらに情報が必要な場合は、喜んで提供させていただきます:) また、私は StackOverflow を初めて使用するので、見落としていることがあれば、お知らせください。
php - RNCryptor iOS/PHP と特殊文字
RNCryptor を使用して iOS でメッセージを暗号化し、PHP で復号化しています。ただし、特殊文字は復号化された文字列から消えます。
iOS で暗号化する方法
{
}
PHPで復号化する方法
問題は、iOS で「Agresión」を暗号化すると、PHP が「Agresin」のみを返すことです。「ó」を復号化しないのはなぜですか? dataUsingEncoding:NSUTF8StringEncodingは特殊文字を保持すると思っていました...別のタイプのエンコーディングを使用することになっていますか?
javascript - RNCryptor IOS + Javascript 暗号化/復号化 AES 256
私は暗号化が初めてで、モバイルアプリからWebsocketsを介してWebページに移動するAES256を使用した対称暗号化を取得しようとしています。
I RNCryptor のデフォルト設定を使用してデータを暗号化する
IOS コード
これは、websockets AgEBnXPPvAkJb7YVapwCVNd5SQw4JwqU7BfLsEXNZyKy9SazfJT8w16Y/hYY7aKxuz3Kuy2tAXXX/cHCc3PMhvG+fzSfrslRVMKvD6L+oWvXLg== 経由で出力されます。
JAVASCRIPT CODE - メッセージを受け取り、それを解析して表示しようとしました
なんらかの理由で、コードが鍵の生成で動かなくなります (おそらく、CryptoJS には 10k の反復は多すぎます??? IOS で使用される反復です)
私はこれでさまざまなことを試しましたが、出力はガベージであり、実際にはメッセージが復号化されていません。どんな助けでも大歓迎です。SJCL を推奨する場合は、コードを提供してください。RNCryptor は独自のメッセージ形式を使用します。それが提供するランダム化されたivのために私はそれを使用します。ご存知の場合は、別のライブラリをお勧めしてください。
読んでくれてありがとう。
ios - RNDecryptor addData メソッドの混乱
HEREの ObjectiveC の RNDecryptor クラスには、次のようにファイルをチャンクで復号化する機能があります。
}
また、RNDecryptor の addData メソッドは次のとおりです。
ここでは、暗号化されたストリームのすべてのチャンクに対して呼び出される、この行が実際に何をしようとしているのか理解できません。
ブロック サイズが 1000 バイトで、HMACLength が 32 だとします。
ブロック サイズのサイズよりも大きいファイルを復号化しようとすると、たとえば 5000 バイトの場合、この addData メソッドは最初の反復を次のように実行します。
NSData *data = [self.inData _RNConsumeToIndex:1000 - 32];
これは、インデックス 0 から (1000-32) までの暗号化されたバイトのヘッダーを消費した後ですが、ハッシュはすべてのチャンクではなく、暗号化されたストリームの最後、最後の数バイトに書き込まれます。そして、次の反復で、入力ストリームは次の 1000 バイトを読み取ります。最初の反復チャンクから切り取られた 32 バイトはどうなりますか?
このコードは証明されているので混乱しているかもしれませんが、これを理解したいです。
前もって感謝します。