問題タブ [aes-gcm]

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

java - GCMParameterSpec が InvalidAlgorithmParameterException をスローします: 不明なパラメーター タイプ

SharedPreferencesに保存するためにAndroidデータの暗号化を行っています。GCMParameterSpec は、私がAES/GCM/NoPadding暗号化に使用している API 19 で Android に導入されました。これは私がそれを実装している方法です:

私の問題は、Android 4.4.2 (API 19) で上記のエラーがスローされることですが、API 21 からは機能します。

例外について、Android ドキュメントから:

指定されたアルゴリズム パラメータがこの暗号に不適切である場合、またはこの暗号がアルゴリズム パラメータを必要とし、params が null である場合、または指定されたアルゴリズム パラメータが法的な制限を超える暗号強度を暗示している場合 (構成された管轄ポリシー ファイルから決定)。

私の質問は次のとおりです。この動作には特定の理由がありますか? initCipherのメソッドがパラメーターを識別しないのはなぜですか?

特定の IV を指定せずに暗号化を試みました。

そして、同じ方法で復号化しようとすると:

GCMParameterSpec復号化には a が必要であるという同じ例外 (InvalidAlgorithmParameterException) をスローします。

GCMParameterSpec復号化のみを指定しようとしましたが、不明なパラメーターの型の例外が発生します。

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

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

java - 暗号化データのランダム アクセス AES GCM モード

ランダム アクセス AES CTR モードの非常に良い例があり、それは動作します: Android で AES CTR モードを使用したランダム アクセス InputStream

ただし、AES GCM モードでは機能しません。復号化するとガベージが発生します。私は暗号化の専門家ではなく、すでに数日間解読しようとしていました。多分誰でもそれについての洞察を与えることができますか?どうにかしてオフセットの IV 計算を変更する必要があるか、認証タグ (私は使用していません) と関係があると思います。