1

我可以使用 jasypt 使用 EncryptableProperties 加密和解密 .properties 文件中的凭据。既然我想使用我自己的算法或像“SHA-512”这样的算法,如何在 EncryptableProperties 中实现它?

有没有办法在 EncryptableProperties 上使用 ConfigurablePasswordEncryptor 或 StrongPasswordEncryptor 而不是我的 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);
4

1 回答 1

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,但其他一些算法将处理加密。

于 2014-11-11T16:36:04.433 回答