Я использую Jasypt для шифрования. Это мой код:
public class Encryptor {
private final static StandardPBEStringEncryptor pbeEncryptor = new StandardPBEStringEncryptor();
private final static String PASSWORD = "FBL";
private final static String ALGORITHM = "PBEWithMD5AndTripleDES";
static{
pbeEncryptor.setPassword( PASSWORD );
//pbeEncryptor.setAlgorithm( ALGORITHM );
}
public static String getEncryptedValue( String text ){
return pbeEncryptor.encrypt( text );
}
public static String getDecryptedValue( String text ){
return pbeEncryptor.decrypt( text );
}
}
Раскомментируйте строку setAlgorithm
, и она выдаст исключение
org.jasypt.exceptions.EncryptionOperationNotPossibleException: шифрование вызвало исключение. Возможная причина заключается в том, что вы используете надежные алгоритмы шифрования и не установили файлы политики юрисдикции неограниченной надежности Java Cryptography Extension (JCE) на этой виртуальной машине Java.
API говорит:
Устанавливает алгоритм, который будет использоваться для шифрования. Устанавливает алгоритм, который будет использоваться для шифрования, например PBEWithMD5AndDES.
Этот алгоритм должен поддерживаться вашим поставщиком JCE (если вы его указали, или поставщиком JVM по умолчанию, если нет), и, если он поддерживается, вы также можете указать для него режим и заполнение, например ALGORITHM / MODE / PADDING .
Теперь, когда вы комментируете 'setAlgorithm', он будет использовать алгоритм по умолчанию [я предполагаю, что это md5], и он будет работать нормально. Это означает, что моя JVM поддерживает md5. Теперь о том, как узнать, какие еще алгоритмы шифрования поддерживает моя JVM.
Спасибо,