2009-06-17 6 views
2

ここに私のコードの暗号化部分があります。実行時にこの例外が発生すると失敗します。Java暗号を使用するとNoSuchAlgorithmExceptionが発生する

import java.util.Random; 
import javax.crypto.Cipher; 
import javax.crypto.SecretKey; 
import javax.crypto.SecretKeyFactory; 
import javax.crypto.spec.PBEKeySpec; 
import javax.crypto.spec.PBEParameterSpec; 

... 

byte[] salt = new byte[8]; 
Random rand = new Random(); 
rand.nextBytes(salt); 

PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray()); 
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithSHAAndTwofish-CBC"); 
SecretKey key = keyFactory.generateSecret(keySpec); 
PBEParameterSpec paramSpec = new PBEParameterSpec(salt, 1000); 

Cipher cipher = Cipher.getInstance("PBEWithSHAAndTwofish-CBC"); 
cipher.init(Cipher.ENCRYPT_MODE, key, paramSpec); 
byte[] ciphertext = cipher.doFinal(plaintext); 

このアルゴリズムにはJava 1.5が付属していませんか?私は別のアルゴリズムを使用しても構いませんが、利用可能なアルゴリズムが分からないだけです。私は無力に働かせようと数日間苦労しているので、私はbouncycastleのような外部ライブラリを使う必要はないと思っています(私の.jarアプリケーションに "無効な署名ファイルダイジェスト"エラーを引き起こす) 。

答えて

2

BouncyCastleのような外部ライブラリに依存したくない場合は、他の暗号を使用する必要があるようです。

すぐにサポートされているものの詳細については、the documentation about Sun crypto providersを参照してください。

+0

あなたを祝福してください!これはまさに私が必要としていたものです。残念ですが、DESのような古いアルゴリズムを使う必要があるかもしれませんが、うまく動いているようですので、私の目的には十分です。ありがとう、ありがとうございます。 –

+0

NSAがそこに入れたバックドアを除いて、AESはかなり良いです。 :blackhelicopters: – stimms

関連する問題