Skip to content
Advertisement

How to find out what algorithm [ encryption ] are supported by my JVM?

I am using Jasypt for encryption. This is my code:

JavaScript

Uncomment the setAlgorithm line and it will throw an exception

org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an excep tion. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Ex tension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine

api says:

Sets the algorithm to be used for encryption Sets the algorithm to be used for encryption, like PBEWithMD5AndDES.

This algorithm has to be supported by your JCE provider (if you specify one, or the default JVM provider if you don’t) and, if it is supported, you can also specify mode and padding for it, like ALGORITHM/MODE/PADDING.

refer: http://www.jasypt.org/api/jasypt/apidocs/org/jasypt/encryption/pbe/StandardPBEStringEncryptor.html#setAlgorithm%28java.lang.String%29

Now, when you comment ‘setAlgorithm’ it will use the default Algorithm [ i guess it is md5 ], and it will work fine. That means md5 is supported by my JVM. Now, how to find out what other encryption algorithms are supported by my JVM.

Thanks,

Advertisement

Answer

The following will list all the providers and the algorithms supporter. What version of Java are you using? Unless you’re on an old version JCE should be included as standard.

JavaScript

Edit: Any reason why you don’t use the standard stuff from the javax.crypto package?

1) Generate a Key using

JavaScript

2) Create a Cipher using

JavaScript

3) Init your cipher with the key

JavaScript

4) Do the encrypting with

JavaScript
Advertisement