問題タブ [jncryptor]

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 投票する
1 に答える
2884 参照

java - Android 暗号化が機能しない (AES/CBC/PKCS7Padding による PBKDF2WithHmacSHA256 暗号化)

Android JNCryptorの助けを借りて、 Cipher Algorithm "AES/CBC/PKCS7Padding"、HMAC アルゴリズム"HmacSHA256"、およびキー派生アルゴリズムを使用して暗号化コードを作成しようとしています。しかし、それは示しています:"PBKDF2WithHmacSHA256"

CryptorException: Failed to generate key from password using PBKDF2WithHmacSHA256

NoSuchAlgorithmException: SecretKeyFactory PBKDF2WithHmacSHA256 implementation not found

どんな助けでも大歓迎です。

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

java - byte[] を文字列に変換 Java Android 暗号化

サーバーに暗号化された文字列として送信する前に、JNCryptor ライブラリを使用して文字列を暗号化しています。これが私のコードです:

ただし、文字列「a」をサーバーに送信すると、認識できない文字がたくさん含まれています。これに関する説明を読みました :

文字列はバイナリ データの適切なコンテナーではなく、暗号文はバイナリ データです。特定の文字エンコーディングでは、すべてのバイトおよびバイト シーケンスが文字を表すわけではなく、表現できないバイトまたはシーケンスが見つかった場合、エラー文字に変換されます。明らかに、このエラー文字を一意のバイトまたはバイト シーケンスに変換することはできません (これは多対 1 のマッピングです)。

このアドバイスは正しいですか?その場合、byte[] を文字列に正しく変換するにはどうすればよいですか? サーバーに読み取り可能に保存できるようにするには?

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 投票する
1 に答える
1200 参照

android - RNCryptor/JNCryptor - Android で暗号化された文字列を iOS で復号化する

助けて、

私は iOS と Android に RNCryptor/JNCryptor を使用しました。以下は、Android での暗号化と iOS での復号化のコードです。

Android でコードを暗号化する

iOS でコードを復号化する

パスワードで簡単な復号化も試しました

不明なヘッダーのエラーを取得、エラー コード = 2

両側でパスワードと同じ文字列「パスワード」を使用しています。

何かわからないことがあれば教えてください。

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

java - AES256 暗号化ファイルを復号化し、電話に保存します

リモートサーバーに保存されているファイルをダウンロードしています。JNCryptorを使用して復号化しようとしていますが、ダウンロードして電話の外部ストレージに保存したファイルが破損していて開けないことを除いて、すべてうまくいきます。どこが間違っているのか誰か教えてもらえますか?

ファイルから InputStream を取得し、復号化し、ファイルを外部ストレージに保存しようとしています。

ありがとう

これが私のコードです:

PS Im logCat でエラーや警告が表示されません。

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

java - JNCryptor/RNCryptor ライブラリが InvalidHMACException をスローするのはなぜですか?

iPhone アプリと Java サーバーソケットで AES256 対称暗号化を使用したいと考えています。現在、Rob Napier の RNCryptor/JNCryptor ライブラリを使用しています。暗号化された文字列を再び復号化できるため、iPhone での暗号化はうまく機能しているようです。しかし、Java サーバー ソケットで文字列を復号化しようとするとすぐに、次の例外がスローされます。

暗号化されたデータ (iOS/Objective-C) を送信するための関連するクライアント コード スニペットを次に示します。

そして、ソケット (Linux/Java) で暗号化されたデータを受け取る、対応するサーバー コードを次に示します。

誰かが私が間違っていることを知っていますか? データを送信する前に、エンコードに Base64 または類似のものを使用する必要がありますか? どんな助けでも大歓迎です。

編集:これが解決策です。文字ベースの入力ストリームを使用する代わりに、ソケットから直接 InputStream を使用して、生のバイトを読み取って復号化アルゴリズムにフィードします。

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

php - Android 上の JNCryptor から RNCryptor-php へ

Android アプリに、サーバーにアップロードしたいファイルがあります。AES 256 暗号化に JNCryptor を使用しています。サーバーに RNCryptor-php ライブラリがあり、ファイルを復号化しようとしていますが、正しく復号化されません。これが私のコードです:

アンドロイド:

PHP

どんな助けでも大歓迎です!ありがとう!