私は、javaやopensslのファイルの暗号化にそれほど慣れていません。私は学校からの基礎を知っていますが、実際にそれを実装したことはありません。JavaのOpenSSLコマンドと同等
は、今私は、次の3つのコマンドを与えてきました:
//generate random base64 private key
openssl rand -base64 32 -out (keypath)
//Encrypt random key with public key
openssl rsautl -encrypt -inkey (encryptionkey) -pubin -in (input) -out (output)
//encrypt file
openssl enc -aes-256-cbc -salt -in (input) -out (output) -pass file:(keypath)
は、私は正確にJavaでこれを複製する必要があります。これを行う簡単な方法はありますか? これを簡単にするライブラリがありますか?
最初の行では、Java 7のSecureRandom関数を使用してバイト配列を生成しています。この配列は、Apache Core Commonsコーデックライブラリを使用してbase64にアンコールします。そうですね:
byte[] bytes = new byte[32];
new SecureRandom().nextBytes(bytes);
String test = new String(Base64.encodeBase64(bytes));
test = test.substring(0, Math.min(test.length(), 10));
もし私が間違っていないなら、これは同じことを行うべきです。
私は上記のスクリプトからの出力を含むファイルを提供された公開RSAキーを使って暗号化する必要があります。ファイルの暗号化とファイル内のデータの違いはありますか?意味は実際のファイルの追加ビットですか?
しかし、それは塩とaes-256-cbc暗号化標準が必要なので難しくなります。私は必要なすべての機能を網羅したライブラリがあることを願っています。もしそうなら誰も私を正しい方向に向けることができますか?私は弾力のある城の暗号ライブラリについて読んでいたが、私が必要とするものを見つけるのは大したことはなかった。
種類はランダムなバイト配列のコード
「javax.crypto」。 – Kayaman
それは1つではなく3つの質問です。そして、それはトピックではない図書館の要求のようです。 – Raedwald
[Java SecureRandomの適切な使用](http://www.cigital.com/blog/properuse-of-javas-securerandom/)も参照してください。 – jww