Sto usando Jasypt per la crittografia. Questo è il mio codice:Come scoprire quale algoritmo [crittografia] è supportato dalla mia 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);
}
}
Rimuovere il commento dalla linea di setAlgorithm
e sarà un'eccezione
org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption sollevò uno zione ecce. Un possibile causa è che si sta utilizzando forti algoritmi di crittografia e non è stato installato Java Cryptography Ex tensione (JCE) forza illimitata politica Giurisdizione I file in questo Java Virtual Machine
api dice:
Imposta l'algoritmo da utilizzare per la crittografia Imposta l'algoritmo da utilizzare per la crittografia , come PBEWithMD5AndDES.
Questo algoritmo deve essere supportato da proprio provider JCE (se si specifica uno, o il provider predefinito JVM se non) e, se è supportato, è possibile anche modalità e imbottitura specificare per esso, come ALGORITHM/MODE/PADDING.
Ora, quando si commento 'setAlgorithm' verrà utilizzato il valore predefinito Algorithm [Credo che sia MD5], e funzionerà bene. Ciò significa che md5 è supportato dalla mia JVM. Ora, come scoprire quali altri algoritmi di crittografia sono supportati dalla mia JVM.
Grazie,
sto usando JDK 1.6 –
Invece di: System.out.println ("Algoritmo:" + service.getAlgorithm()); usa System.out.println ("" + servizio); e sarete in grado di vedere i livelli di crittografia disponibili. Ad esempio, quanto segue indica che la crittografia AES a 128 bit è supportata, ma non AES 256 bit: 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} –
Il codice elenca un sacco di algoritmi che non possono essere utilizzati. Codice non così utile – Jonas