要验证 Jasypt 的配置以及加密/解密功能是否正常,你可以通过几种方式来输出配置和测试加密解密过程。这包括在应用启动时输出配置,或编写一个简单的单元测试或 main
方法来验证。
在启动时输出配置
要在 Spring Boot 启动时输出 Jasypt 密码配置(不建议在生产环境中输出敏感信息,仅用于调试),可以在应用的启动类中添加一些日志记录:
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class YourApplication implements CommandLineRunner {@Value("${jasypt.encryptor.password}")private String jasyptPassword;public static void main(String[] args) {SpringApplication.run(YourApplication.class, args);}@Overridepublic void run(String... args) throws Exception {System.out.println("Jasypt Password: " + jasyptPassword);// 注意:仅用于调试!不要在生产环境中打印密码}
}
编写一个单元测试
你可以编写单元测试来验证加密和解密功能:
import org.jasypt.encryption.StringEncryptor;
import org.jasypt.util.text.AES256TextEncryptor;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;public class JasyptEncryptionTest {@Testpublic void testEncryptionDecryption() {String password = "yourSecretPassword"; // 使用你的Jasypt密码AES256TextEncryptor textEncryptor = new AES256TextEncryptor();textEncryptor.setPassword(password);String originalText = "mySecretValue";String encryptedText = textEncryptor.encrypt(originalText);String decryptedText = textEncryptor.decrypt(encryptedText);assertEquals(originalText, decryptedText, "Decryption should return the original text");}
}
编写一个 main
方法
类似于单元测试,你也可以编写一个简单的 main
方法来验证:
import org.jasypt.util.text.AES256TextEncryptor;public class JasyptDemo {public static void main(String[] args) {String password = "yourSecretPassword"; // 使用你的Jasypt密码AES256TextEncryptor textEncryptor = new AES256TextEncryptor();textEncryptor.setPassword(password);String originalText = "mySecretValue";String encryptedText = textEncryptor.encrypt(originalText);String decryptedText = textEncryptor.decrypt(encryptedText);System.out.println("Original: " + originalText);System.out.println("Encrypted: " + encryptedText);System.out.println("Decrypted: " + decryptedText);}
}
注意事项
- 以上代码中的密码仅用于演示,请确保在实际应用中安全地管理密码。
- 不要在生产环境中打印敏感信息。
- 根据你的加密算法和配置,选择合适的
TextEncryptor
。AES256TextEncryptor
是常用的选择,但你可能使用不同的加密算法。 - 确保所有依赖项正确配置,并且与 Spring Boot 兼容。