Estoy usando Jasypt para el cifrado. Este es mi código:¿Cómo averiguar qué algoritmo [cifrado] son compatibles con mi JVM?
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);
}
}
Elimine la línea setAlgorithm
y va a lanzar una excepción
org.jasypt.exceptions.EncryptionOperationNotPossibleException: cifrado levantó una excep ción. Un posible causa es que está utilizando fuertes algoritmos de cifrado y todavía no instalado el Java Cryptography Ex tensión (JCE) una fuerza ilimitada política de jurisdicción Archivos en esta Java Virtual Machine
API dice:
Establece el algoritmo que se utiliza para el cifrado Establece el algoritmo que se utiliza para el cifrado , como PBEWithMD5AndDES.
Este algoritmo tiene que ser apoyado por su proveedor JCE (si se especifica uno, o el proveedor de JVM por defecto si no lo hace ) y, si es compatible, que puede el modo y el relleno también especificar para , como ALGORITMO/MODO/ACOLCHADO.
Ahora, cuando usted comenta 'setAlgorithm' se utilizará el algoritmo por defecto [supongo que es MD5], y no tendrán ningún problema. Eso significa que md5 es compatible con mi JVM. Ahora, cómo averiguar qué otros algoritmos de cifrado son compatibles con mi JVM.
Gracias,
estoy usando JDK 1.6 –
En lugar de: System.out.println ("Algoritmo:" + service.getAlgorithm()); use System.out.println ("" + servicio); y podrás ver los niveles de encriptación disponibles. Por ejemplo, lo siguiente indica que se admite cifrado AES de 128 bits, pero no AES de 256 bits: SunJCE: Cipher.AES -> com.sun.crypto.provider.AESCipher ... SupportedModes = ECB | CBC | PCBC | CTR | CTS | CFB | OFB | CFB8 | CFB16 | CFB24 | CFB32 | CFB40 | CFB48 | CFB56 | CFB64 | OFB8 | OFB16 | OFB24 | OFB32 | OFB40 | OFB48 | OFB56 | OFB64 | CFB72 | CFB80 | CFB88 | CFB96 | CFB104 | CFB112 | CFB120 | CFB128 | OFB72 | OFB80 | OFB88 | OFB96 | OFB104 | OFB112 | OFB120 | OFB128} –
El código enumera una gran cantidad de algoritmos que no se pueden utilizar. Código no tan útil. – Jonas