1

Javaでの暗号化は初めてで、CBCモードの操作に基づいて、DES対称暗号を使用してフレーズを暗号化および復号化するプログラムを作成しようとしています。

8 バイトの初期化ベクトルを作成する方法と、新しい IV を AlgorithmParameterSpec クラスにキャストする方法を誰か教えてもらえますか?

また、どのパッケージをインポートすればよいですか?

編集:現在、次の行があります:

SecureRandom sr = new SecureRandom(); //create new secure random
byte [] iv = new byte[8]; //create an array of 8 bytes 
sr.nextBytes(iv); //create random bytes to be used for the IV (?) Not too sure.
IvParameterSpec IV = new IvParameterSpec(iv); //creating the IV 

上記のアプローチは正しいですか?

ありがとう。

4

1 に答える 1

0

はい。今まであなたは正しいです。
これClass IvParameterSpecは、初期ベクターをに渡すために使用されますClass Cipher
。この後、以下のように a を作成Cipherします

Cipher cipherInstance = Cipher.getInstance("DES/CBC/NoPadding");

CBCモードでDES暗号化を使用しているため、 hereDES/CBC/NoPaddingが使用されます。

次は初期化です。

cipherInstance.init(Cipher.DECRYPT_MODE, Key, ivParameterSpec);

パラメータは次のとおりです
。1 番目は暗号化のモード、Cipher.DECRYPT_MODEまたはCipher.ENCRYPT_MODE
2 番目は秘密鍵を使用して生成しClass SecretKey
ました 3 番目は生成された ivParameterSpec

そして最後の行は

outData = cipherInstance.doFinal(input);

モードがDecryptの場合は復号化されたデータを返し、モードがEncryptの場合は暗号化されたデータを返します。

最後に重要なのは、すべての例外を適切にキャッチすることです。
そして、あなたは終わった

于 2014-01-10T11:40:45.067 に答える