2012-03-04 18 views
4

次のように、Javaの組み込み暗号化ライブラリを使用していくつかの(機能的な)AES暗号化コードを作成しましたが、私は256ビット鍵を使用したいと思います。ただし、無制限強度暗号化ポリシーファイルにインストールする必要はありません。BouncyCastle Lightweight APIを使用したAES-256暗号化

私はBouncyCastle Lightweight APIを使用するとこれを可能にすることができると聞いていますが、残念ながら私は頭がおかしくなります。私の手助けとなるドキュメントには苦労しています。 。

KeyGenerator kgen = KeyGenerator.getInstance("AES"); 
int keySize = 128; 
kgen.init(keySize); 
SecretKey key = kgen.generateKey(); 
byte[] aesKey = key.getEncoded(); 
SecretKeySpec aesKeySpec = new SecretKeySpec(aesKey, "AES"); 
Cipher aesCipher = Cipher.getInstance("AES"); 
aesCipher.init(Cipher.ENCRYPT_MODE, aesKeySpec); 
byte[] encryptedContent = aesCipher.doFinal(content); 

はどのようにしてはBouncyCastle軽量APIでこれを再実装に行くか:ここで

は私の現在のコード、ここで「コンテンツ」に暗号化されたバイト配列があるのでしょうか?誰かが私を助けてくれる、そして/または簡単なサンプルコードの方向に私を指摘することはできますか?

私はまた、ユーザーが無制限強度ポリシーファイルをインストールする必要なく、256ビットのキーAES暗号化を可能にする他のソリューションでも面白いです。

多くの感謝!

+0

[PaddedBufferedBlockCipher](http://stackoverflow.com/search?q=paddedbufferedblockcipher)の例をご覧ください。 –

+0

'' AES/CBC/PKCS5Padding ''の代わりに安全でないECBエンコーディング '' AES ''を使用しています)、あなたはIVで何もしていないようです(プレーンテキストを1つだけ暗号化している場合は問題ありません。あなたは何らかの理由でSecretKeyをSecretKeySpecに変換していますが、これは間違った方法であるようです... –

答えて

6

この質問と回答は、有用な出発点です。

256bit AES/CBC/PKCS5Padding with Bouncy Castle

探すために次の最高の場所は、LW API用のテストコード、その後、JCEプロバイダコードです。 JCEプロバイダのコードは、LWライブラリのラッパーです。その方法を知りたい場合は、それを見るのが最適な場所です。

JCEプロバイダコードでは、BCの実装を意味します。

+1

リンクされたSOの答えは、軽量 – alphakermit

関連する問題