如何解密Pentaho中数据库连接与转换文件的密码?
找回Pentaho转换(ktr/kdb)中的加密密码方法
方法一:使用Pentaho自带命令行工具
- 定位到Pentaho安装目录下的
data-integration文件夹 - 根据系统执行对应命令:
- Linux/macOS:打开终端,切换到该目录后执行
./encr.sh -d -k "KETTLE_PASSWORD" -c "Encrypted xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz" - Windows:打开命令提示符,切换到该目录后执行
encr.bat -d -k "KETTLE_PASSWORD" -c "Encrypted xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz"
- Linux/macOS:打开终端,切换到该目录后执行
- 参数说明:
-d:指定解密模式-k:加密密钥,默认值为KETTLE_PASSWORD,若你曾自定义过密钥(比如修改过kettle.properties中的KETTLE_PASSWORD),需替换为自定义密钥-c:填入你看到的完整加密字符串(包含Encrypted前缀)
方法二:通过Java代码解密
Pentaho采用Jasypt的PBEWithMD5AndDES算法加密密码,可通过以下代码解密:
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; public class PentahoPasswordDecrypt { public static void main(String[] args) { StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); encryptor.setAlgorithm("PBEWithMD5AndDES"); encryptor.setPassword("KETTLE_PASSWORD"); // 替换为自定义密钥(若有) // 填入加密字符串中"Encrypted "之后的部分 String encryptedStr = "xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz"; System.out.println("解密后的密码:" + encryptor.decrypt(encryptedStr)); } }
- 注意:需要引入Pentaho安装目录
data-integration/lib下的jasypt-*.jar包来编译运行代码
内容的提问来源于stack exchange,提问作者mesompi
相关产品推荐
相关产品推荐

