首页 > 解决方案 > 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 上却不行。

标签: spring-bootjasypt

解决方案


必须安装 Java Cryptography Extension (JCE)。请检查您是否在linux中具有该功能。


推荐阅读