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

前端 未结 5 1308
执笔经年
执笔经年 2020-12-23 16:51

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

public class Encryptor {    
    private final static StandardPBEStringEncryptor pbeEncryptor = new Standa         


        
5条回答
  •  暖寄归人
    2020-12-23 17:39

    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.

    import java.security.Provider;
    import java.security.Security;
    
    public class SecurityListings {
        public static void main(String[] args) {
            for (Provider provider : Security.getProviders()) {
                System.out.println("Provider: " + provider.getName());
                for (Provider.Service service : provider.getServices()) {
                    System.out.println("  Algorithm: " + service.getAlgorithm());
                }
            }
    
        }
    }
    

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

    1) Generate a Key using

    Key key = SecretKeyFactory.getInstance(algorithm).generateSecret(new PBEKeySpec(password.toCharArray()));
    

    2) Create a Cipher using

    cipher = Cipher.getInstance(algorithm);  
    

    3) Init your cipher with the key

    cipher.init(Cipher.ENCRYPT_MODE, key);  
    

    4) Do the encrypting with

    byte[] encrypted = cipher.doFinal(data)
    

提交回复
热议问题