問題タブ [jce]
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.
java - Maven を使用して JCE Unlimited Strength Policy ファイルをインストールするにはどうすればよいですか?
私が持っているコードには、JCE 無制限の強度ポリシー ファイルが必要なものがあります。この依存関係を Maven Pom ファイルに追加して、チームの他の開発者がそれぞれのシステムに個別に適用する必要がないようにしたいと考えています。
これが最終的に展開されるシステムには、JCE ファイルを手動でインストールする必要があることを認識しています。これは開発ソリューションのみです。
ポリシー ファイルをリポジトリに追加し、maven でインストールを処理できると考えていましたが、これを行っている (そしてそれについてブログを書いている) 人が他にいないことに驚いています。
java - Java 5でAESを使用したパスワードベースの暗号化(JCEのみ)
AES(192または256ビット)を使用したいのですが、ユーザーが指定したパスワードからキーを生成する方法に固執しています。
このスレッドを実行し、Java 6でプログラムを実行できます。ただし、Java 5で同じプログラムを実行する必要があり、 PBKDF2WithHmacSHA1のSecretKeyFactoryはJDK5では使用できません。
したがって、基本的に、ユーザーのパスワードに基づいてSecretKey用に192ビットまたは256ビットを生成する必要があります。これをJava5で安全に行う方法が必要です。
感謝します!
編集#1行き詰まりを避けるために、現在、MD5(ユーザー入力パスワード+固定ソルト)の128ビットをAESのキーとして使用しています。私はそれがひどいことを知っています、そして私が鍵を生成する良い方法を見つけた瞬間にそれを変えるでしょう。
java - なぜjava.security.NoSuchProviderExceptionそのようなプロバイダーはありません:BC?
jar(bcprov-jdk16-145.jar)がプロジェクトにSecurity.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider())
追加され、クラスに追加され、BouncyCastleProvider.PROVIDER_NAME
「BC」を返しますが、AesFileIo.writeFile()は引き続きをスローしjava.security.NoSuchProviderException No such provider: BC
ます。何か案は?
java - InvalidKeyException キーのサイズが不正です
開発中の MacBook Pro では問題なく動作するテストがありますが、継続的インテグレーションの TeamCity サーバーでは実行できません。
エラーは次のとおりです。
開発ボックスと TeamCity はどちらも Java 1.6 を使用し、特別な AES 暗号化が必要な場合は BouncyCastle ライブラリを使用します。
コードは次のとおりです。
アップデート
選択した回答によると、TeamCity インストールで何かを変更する必要があり、一部のユーザーのインストールに影響を与える可能性があるため、別の暗号化ライブラリに切り替えて制限なしで行う必要があるのは良い選択ではありません。したがって、おそらく弾む城が役立ちます。
更新 2
この制限を回避するために、実際に BouncyCastle を使用するように切り替えました。これは、BC プロバイダーではなく、独自の BC クラスを直接使用する場合にのみ機能することに注意してください。
java - 米国法の制限なしにサードパーティの Java ライブラリを使用して AES 暗号化を再実装する
標準の Java ツールと特定の AES アルゴリズムの BouncyCastle プロバイダーを使用して、特定のタスク固有のパラメーターで AES 暗号化を実装しました。
コードは次のとおりです。
一部の環境では、このコードには特別なポリシー ファイルが必要です。関連する質問を参照してください: InvalidKeyException Illegal key size
私の目標は、サードパーティのライブラリを使用して再実装することです。理想的には、プロバイダーとして既に使用されている弾む城を使用します。ライブラリには、標準の Java ポリシー ファイルの制限があってはなりません。言い換えれば、制限があってはなりません。
BouncyCastle または言及された制限なしで機能する他のサードパーティ ライブラリを使用して再実装する方法を回答で提案してください。理想的には、コードが表示されます:-)
読んでいただきありがとうございます!
遅れて、解決策を投稿できるようになりました。Bouncy Castle のドキュメントには多くの例が含まれていないため、誰かが恩恵を受けることを願っています :-)
}
ところで、Java API と Bouncy Castle API の間に 2 つの違いがあることを発見しました。 1. Bouncy Castle は、オブジェクトの構成を使用して必要な暗号を作成します。Java API は文字列を使用して必要な暗号を識別します。2. BC 暗号化コードはわずかに大きく、Java API コードはよりコンパクトです。
ソリューションは、元の Java API 実装の完全な置き換えです。証明は、私が作成したカスタム ユニット テストです。
encryption - PHP で暗号化し、Java で復号化する
JAVA を使用してメッセージを復号化するプログラムを作成する必要があります。メッセージは、PHP に実装された Triple DES / ECB を使用して暗号化されます。アルゴリズム、モード、およびパディング スキーマでいくつかの異なる設定を試しました。正しい結果が得られません。何が欠けている?
メッセージを暗号化する PHP プログラムは次のとおりです。
以下は、メッセージを復号化する Java プログラムです: (私は BouncyCastleProvider を使用しています)
java - 文字列をPEMからDER形式に変換するにはどうすればよいですか
以下の形式で文字列を送信します。
この文字列からPublicKeyオブジェクトを作成するにはどうすればよいですか?以下を試してみましたヘッダーとフッターを削除し、base64でバッファをデコードします
これは、無効なキー形式として失敗するか、以下のエラーが発生します
キーはopenSSLのAPIを介して生成されていますPEM_write_bio_RSAPublicKey(bio, rsa);
openssl - openSSL API を介して Java から生成された PublicKey をロードする
JCE でソリューションを実装する必要があります KeyPairGenerator を使用して生成された公開鍵文字列があります。
PEM_read_bio_RSAPublicKey を使用して openSSL Api 呼び出しでこれをロードするにはどうすればよいですか? または、これには x509 仕様がエンコードされます。openssl API 呼び出しと互換性のあるパブリックを削除して生成するにはどうすればよいですか?
java - J9 vm にインストールされたプロバイダーから暗号化アルゴリズムを使用するにはどうすればよいですか?
こんにちは、J9 で RSA を使用しようとしています。アルゴリズムは、インストールされた拡張機能である「J9JCE」プロバイダーによって提供されます(既存のプロバイダーとアルゴリズムをすべてリストして見つけました)が、例外は次のとおりです。
java - JCE を使用した 3DES/DES 暗号化 - 受け入れ可能な鍵の生成
Java で 3DES 暗号化を必要とするプロジェクトに取り組んでいます。問題は、「0123456789ABCDEF0123456789ABCDEF」のような 128 ビットの 16 進キーが提供されてきた (そして今後も提供され続ける) ことです。バイトへの変換は問題ありません。ただし、問題は、Java Cryptographic Extensions API がこのキーが無効であると言ってチョークすることです。各バイトの MSB は単なるパリティ ビットであることがわかったので、JCE は私がそれらを削除することを期待しています (または私はそう思います)。しかし、.NET では、提供されたキーを指定することができ、問題なく暗号化/復号化を静かに処理します。
提供された種類のキーから JCE が期待する種類のキーを生成する方法はありますか?
JCE では DES 暗号化に 8 バイトのキーを指定できることがわかったので、提供されたキーの半分を使用して 3DES を DES EDE として実装してみました。ただし、.NET ではまだ一貫性のない結果が得られます。
Javaコードは次のとおりです。
.NET コードは次のとおりです。
どちらも異なる出力を生成します (Base64 文字列の一部の文字は同じです)