spring-boot - jasypt-spring-boot-starter:密码不是 ascii
问题描述
我开始在 spring-boot 中使用 Jasypt 和 maven 依赖:
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
我的 spring-boot 入门类有这些注释:
@EnableEncryptableProperties
@PropertySource(name="EncryptedProperties", value = "classpath:application.properties")
我像这样加密了我的密码:
java -cp jasypt-1.9.4.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=password
password=mySecret algorithm=PBEWithMD5AndDES
并将这样的属性添加到我的 application.properties 中:
server.ssl.key-store-password: ENC(jasyptEncString)
一开始我有这个命令行参数:
--jasypt.encryptor.password=mySecret
但它失败了:
无法将“server.ssl.key-store-password”下的属性绑定到 java.lang.String:原因:密码不是 ASCII
我检查的密码,它只包含 ASCII 字符。
如果我添加这个参数(这实际上是默认值):--jasypt.encryptor.algorithm=PBEWithMD5AndDES
我越来越:
SecretKeyFactory 不可用
相同的配置和代码在 Windows 机器上运行良好,但在 RHEL Linux 上却不行。
解决方案
必须安装 Java Cryptography Extension (JCE)。请检查您是否在linux中具有该功能。
推荐阅读
- javascript - 如何为传单安装 freedraw?
- spring - 为什么自调用不适用于 Spring 代理(例如使用 AOP)?
- android - 启动画面仅在首次启动时运行,不会在后续启动时运行
- typescript - 从 Typescript 中的调用函数抛出时无法捕获错误
- python - 在python3中将多个数字转换为字母
- python-3.x - 在 ec2 Ubuntu 实例上启动 Jupyter Notebook
- python - 将代码从当前文件复制到另一个 python 文件
- java - 我正在从文件中读取 if 循环或为什么循环没有选择第一个按钮“7”而是获取所有其余部分
- python-3.x - 一种在带有元组的列表中查找重复项的有效方法,总结元组的值并删除使用的重复元组
- r - 线性模型的自举残差