2014-06-09 63 views
1

我可以使用EncryptableProperties使用jasypt加密和解密.properties文件中的凭证。因为我想使用我自己的算法或算法,如“SHA-512”如何在EncryptableProperties中实现它?Jasypt - 如何使用StrongPasswordEncryptor获取.properties文件中的凭证

是否有任何方法使用ConfigurablePasswordEncryptor或StrongPasswordEncryptor而不是我EncryptableProperties上的StringEncryptor或TextEncryptor。

StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();  
encryptor.setPassword("OrderMod");   
Properties props = new EncryptableProperties(encryptor); 
props.load(new FileInputStream("mime.properties")); 
String password = props.getProperty("password"); 
System.out.println("password:: "+password); 

回答

0

您可以设置在加密算法:

StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();  
encryptor.setPassword("OrderMod"); 
encryptor.setAlgorithm(jasyptAlgorithm); 
Properties props = new EncryptableProperties(encryptor); 

其中jasyptAlgorithm是要使用,像PBEWithMD5AndTripleDES较强的算法。 Jasypt实际上并没有实现任何算法,因此您需要从JCE提供程序中找到算法列表,例如Oracle JCA(随Oracle Java一起提供)或Bouncy Castle

如果您使用的是强大的算法(如3DES),您可能需要下载并安装Java Cryptography Extension Unlimited Strength Jurisdiction Policy Files

你提到SHA-512,但这不是一个加密算法都没有。它只是一个哈希算法。许多加密进程可能能够使用SHA-512,但其他一些算法将处理加密。

相关问题