Вопрос по java – Использование криптографии Java приводит к NoSuchAlgorithmException

2

Вот часть моего кода для шифрования. Он компилируется нормально, но завершается с этим исключением во время выполнения:

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, он вызывает ошибку "Неверный дайджест файла подписи") ).

Ваш Ответ

1   ответ
2

вам, возможно, придется использовать какой-то другой шифр, если вы не хотите полагаться на какую-то внешнюю библиотеку, такую как BouncyCastle.

Увидетьдокументация о криптографических провайдерах Sun для получения дополнительной информации о том, что поддерживается прямо из коробки.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы