問題タブ [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.

0 投票する
2 に答える
1142 参照

objective-c - AFNetworking + RNCryptor - JSON 解析前にデータを復号化

元気ですか?

RNCryptor を使用して、iOS デバイスと Web サーバー間のトランザクションを暗号化しようとしています。そのために、私は iOS と PHP で RNCryptor を使用し、iOS から WebServer への通信には AFNetworking を使用しています。

JSON 応答オブジェクトに解析される前に、AFNetworking から受信したデータを復号化するにはどうすればよいですか?


合成するために、私は持っています:

  • Yii フレームワーク、サーバーサイド、PHP
  • AFNetwoling、クライアント側、Objective-C
  • RNCryptor、両面

iOS から PHP へ: データを使用する前に復号化できます。

PHP から iOS へ: AFNetworking はデータを使用する前に復号化しません。


私のPHPコードは次のようなものです:

それはそのようなものを出力します:

AwFQ9+OfsHyXcSPynCrtveF7MQupQ+urd/VYeNMmt6OMxd6MhsDz4nxapvS1kVEHHbBZ4xLHqN7hTUDZos1LTWhB/CyeYoWpZSDhyFeHu9wNlHcRie6KTaHv/h14krvfb2/GHMt3GhIFqnyo7UKy/d06


私のObjective-Cコードは次のようなものです:

次のエラーが出力されます。

Error Domain=NSCocoaErrorDomain Code=3840 "The operation could not be completed. (Cocoa error 3840.)" (JSON テキストが配列またはオブジェクトで開始されておらず、フラグメントを許可するオプションが設定されていません。) UserInfo=0x15681970 {NSDebugDescription=JSON テキスト配列またはオブジェクトで開始されておらず、フラグメントを許可するオプションが設定されていません。}


ご協力いただきありがとうございます!!


編集1

コードを少し変更したところ、次の結果が得られました。

その復号化を自動化する Response Serializer を作成する方法についてのヒントはありますか?

0 投票する
1 に答える
1322 参照

php - PHPで暗号化し、Swiftで復号化する

iOSアプリと通信するためにphpでAPIをコーディングしています。

このデータをphpで暗号化して送信し、iOSアプリで復号化したい(迅速な言語)

i php を暗号化するには問題ありません:

しかし、iOS でデータを受信した場合、どうすれば復号化できますか?

もちろん、objective-c で書かれており、swift プロジェクトに統合できるRNCryptorを見ましたが、ファイルをプロジェクトに追加すると、x-code はそれらを統合するかどうかを尋ねません。ブリッジヘッダーを作成しません。

誰かがすでにこの問題を抱えているか、データを迅速に復号化する別の方法を知っていますか?

0 投票する
1 に答える
2705 参照

c# - テキスト以外のファイルを AES で復号化すると、データが破損する

Mac アプリ (Cocoa で作成) とやり取りする必要がある Windows アプリを C# で作成しています。このアプリは、CBC (IV、キー、ソルト、HMAC) を使用して AES でファイルを暗号化します。暗号化についてはよくわかりませんが、それが機能していると思います。使用する Cocoa ライブラリはRNCryptorです。それらには、私がWindows側で使用しているものであるC#バージョンbyte[]があります(主に文字列の代わりに使用するために、いくつかの変更があります)。

現在、テキスト ファイルは正しく復号化されていますが、他のファイル (PNG ファイルなど) は最終的に破損しています (右側の正しいファイルと左側の破損したファイル、UTF8 エンコーディングを使用すると、多くの菱形があることがわかります。 ?s):

違い

これはファイルのエンコーディングが原因だと思いますが、UTF8、デフォルト、ユニコード、ASCII...を試してみましたが、出力ファイルは常にさまざまなファイルサイズで破損しており、ASCIIとデフォルトのエンコーディング(私が信じているUTF16)が最も近いです。サイズで。

これは、私が使用した RNCryptor の変更されたコードです。

そして、これはファイルを復号化して書き込む私のコードです:

ここで何が問題なのですか?前もって感謝します。

0 投票する
0 に答える
954 参照

android - PKCS5Padding と PKCS7Padding の互換性 Android iOS

アプリの Android バージョンと iOS バージョンの両方を作成しており、暗号化する必要があるデータがあります。互換性があると主張されているため、Android と iOS 用の JNCryptor/RNCryptor ライブラリをそれぞれ使用しています。

ただし、Android で暗号化すると、暗号化されたキーの長さは 114 文字になりますが、iOS では 112 文字になります。私が気付いた 2 つのライブラリ ソース コードの唯一の違いは、Android が PKCS5Padding を使用するのに対し、iOS は PKCS7Padding を使用することです。2 つのライブラリが明らかに互換性があると考えられていることを考えると、これは重要なことですか? もしそうなら、これを変更して2つの暗号化された文字列を同じ長さにするにはどうすればよいですか?

編集: Android コード:

iOS コード:

それとも、2 つのライブラリを比較するつもりでしたか? これらはここから入手できます: https://github.com/RNCryptor/JNCryptor

0 投票する
2 に答える
2596 参照

android - AndroidでRNCryptorを使用する

RNCryptor で暗号化された画像ファイルがいくつかあり、それらを復号化し、フレームレイアウトの背景として使用したいと考えています。サンプル ファイルを確認しましたが、アプリケーション フォースはしばらくすると終了し、画像は表示されませんでした。JNCryptor ライブラリを使用し ています

以下のように、暗号化された画像を raw フォルダーに入れます。

ここに私のプロジェクトフォルダ

これは私の活動の私のコードです:

このファイルは、次のコードを使用して iOS でうまく機能します。

logcat の出力は次のとおりです。

08-28 19:52:11.720: E/AndroidRuntime(1063): 致命的な例外: メイン 08-28 19:52:11.720: E/AndroidRuntime(1063): java.lang.RuntimeException: アクティビティ ComponentInfo{net を開始できません。 appersian.android.wod/net.appersian.android.wod.MainActivity}: java.lang.NullPointerException 08-28 19:52:11.720: E/AndroidRuntime(1063): android.app.ActivityThread.performLaunchActivity(ActivityThread.java で:2059) 08-28 19:52:11.720: E/AndroidRuntime(1063): android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 08-28 19:52:11.720: E/AndroidRuntime(1063): android.app.ActivityThread.access$600(ActivityThread.java:130) 08-28 19:52:11.720: E/AndroidRuntime(1063): android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 08 -28 19:52:11.720: E/AndroidRuntime(1063): android.os.Handler で。dispatchMessage(Handler.java:99) 08-28 19:52:11.720: E/AndroidRuntime(1063): android.os.Looper.loop(Looper.java:137) 08-28 19:52:11.720: E/ AndroidRuntime(1063): android.app.ActivityThread.main(ActivityThread.java:4745) 08-28 19:52:11.720: E/AndroidRuntime(1063): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) で08-28 19:52:11.720: E/AndroidRuntime(1063): java.lang.reflect.Method.invoke(Method.java:511) 08-28 19:52:11.720: E/AndroidRuntime(1063): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 08-28 19:52:11.720: E/AndroidRuntime(1063): com.android.internal.os.ZygoteInit.main(ZygoteInit) で.java:553) 08-28 19:52:11.720: E/AndroidRuntime(1063): dalvik.system.NativeStart.main(ネイティブ メソッド) 08-28 19:52:11.720: E/AndroidRuntime(1063): 原因by: java.lang.NullPointerException 08-28 19:52:11.720: E/AndroidRuntime(1063): net.appersian.android.wod.MainActivity.onCreate(MainActivity.java:54) 08-28 19:52:11.720: E/AndroidRuntime(1063 ): android.app.Activity.performCreate(Activity.java:5008) 08-28 19:52:11.720: E/AndroidRuntime(1063): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 08- 28 19:52:11.720: E/AndroidRuntime(1063): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 08-28 19:52:11.720: E/AndroidRuntime(1063): ... 11 もっと見るE/AndroidRuntime(1063): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 08-28 19:52:11.720: E/AndroidRuntime(1063): android.app.ActivityThread.performLaunchActivity(ActivityThread.java) :2023) 08-28 19:52:11.720: E/AndroidRuntime(1063): ... 11 もっと見るE/AndroidRuntime(1063): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 08-28 19:52:11.720: E/AndroidRuntime(1063): android.app.ActivityThread.performLaunchActivity(ActivityThread.java) :2023) 08-28 19:52:11.720: E/AndroidRuntime(1063): ... 11 もっと見る

ファイルの復号化について何が間違っていますか?

更新: e.printStackTrace() を try/catch に追加しました。これが新しい logcat です:

08-28 20:54:10.496: W/System.err(1487): org.cryptonode.jncryptor.InvalidHMACException: HMAC 値が正しくありません。08-28 20:54:10.496: W/System.err(1487): org.cryptonode.jncryptor.AES256JNCryptor.decryptV3Data(AES256JNCryptor.java:244) で 08-28 20:54:10.496: W/System.err( 1487): org.cryptonode.jncryptor.AES256JNCryptor.decryptV3Data(AES256JNCryptor.java:319) 08-28 20:54:10.496: W/System.err(1487): org.cryptonode.jncryptor.AES256JNCryptor.decryptData(AES256JNCryptor .java:276) 08-28 20:54:10.496: W/System.err(1487): net.appersian.android.wod.MainActivity.onCreate (MainActivity.java:50) で 08-28 20:54:10.496 : W/System.err(1487): android.app.Activity.performCreate(Activity.java:5008) 08-28 20:54:10.496: W/System.err(1487): android.app.Instrumentation で。 callActivityOnCreate(Instrumentation.java:1079) 08-28 20:54:

0 投票する
2 に答える
874 参照

commoncrypto - node.js で暗号化し、RNCryptor で復号化する方法

ノードでデータを暗号化し、RNCryptor で復号化するのに問題があります。私の理解では、RNCryptor は特別なデータ形式を使用していますか?

暗号文は次のように生成されます。

そして、私はこのように解読しています:

どうすればいいですか?現在復号化しようとすると、空の NSData が表示され、エラーは発生しません。

0 投票する
1 に答える
718 参照

ios - RNCryptor: 公開鍵を NSString として取得

RNCryptor を使用して、iOS でデータの暗号化/復号化に成功しています。

一部のデータを暗号化できるように、サーバーに送信する公開鍵を取得しようとしています。

この時点で、keyいくつかのデータが含まれています。ただし、公開鍵を文字列として取得する方法がわかりません。

さまざまなエンコーディングを試しましたが、何も機能していないようです。

RNCryptor の keyForPassword メソッドは次のとおりです。

グーグルがほとんど出てこないので、私は何か大きな間違いをしていると感じています。