场景:
在使用jasypt对文本进行加密的时候,凯哥采用的是jar加密方式。
cd到jasypt的1.9.3目录下
cd ~/.m2/repository/org/jasypt/jasypt/1.9.3
执行下面命令:
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI password=G0CvDz7oJn6kaigejava algorithm=PBEWithMD5AndDES input=kaigejava
出现下面错误:

经排查 SecretKeyFactory 的类定义在 jre/lib/jce.jar内,推断是JDK版本不同导致
比对Windows版JDK 和 Linux版JDK,发现Linux版比Windows版 缺少某些包,进一步定位到 jre/lib/ext/sunjce_provider.jar解决方案:
步骤1:将 Windows 中的sunjce_provider.jar 拷贝到 Linux JDK相应位置
步骤2:环境变量 CLASSPATH 追加 jre/lib/ext/sunjce_provider.jar
如
CLASSPATH = .:/usr/local/java/jdk1.8.0_251/jre/lib/ext/sunjce_provider.jar