kettle使用encr加密解密数据库连接密码

本文介绍了如何在Kettle中对密码进行加密和解密。通过在命令行执行Encr.bat或encr.sh脚本可以加密密码,如生成加密串Encrypted2be98afc86aa7f2e4cb79ce10bec3fd89。而在Kettle转换中使用JavaScript组件,可以解密该加密串,恢复为原始密码123。这个过程对于保护敏感信息在Kettle中的安全至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.加密

进入kettle的安装目录

windows系统命令行执行:Encr.bat -kettle 123

linux/mac系统命令行执行:encr.sh -kettle 123

可生成Encrypted 2be98afc86aa7f2e4cb79ce10bec3fd89,即为123对应的kettle加密后的密码。

2.解密

在kettle里新建转换,拖入javascript组件,在里面写:


 
  1. var setValue;
    
    
    setValue = org.pentaho.di.core.encryption.Encr.decryptPasswordOptionallyEncrypted('Encrypted 2be98afc86aa7f2e4cb79ce10bec3fd89');

     

  2.  

点击获取变量,点击下方的【测试脚本】,生成记录填1,如下图:

点击【确定】,结果如下:

将加密后的密码解密为123。

参考链接:http://www.cnblogs.com/rwxwsblog/p/4529078.html

### Kettle密码的加密和解密方法 Kettle 是一款强大的开源 ETL 工具,其支持对敏感信息(如数据库连接中的密码)进行加密处理,从而提高安全性。以下是关于如何在 Kettle 中实现密码的加密与解密的具体方法。 #### 一、通过命令行工具完成加密 Kettle 提供了一个内置的命令行工具用于生成加密字符串。具体操作如下: - **Windows 系统** 执行以下命令来生成加密后的密码: ```bash cd /d D:\Application\pdi-ce-6.0.0.0-353\data-integration Encr.bat -kettle 明文密码 ``` 假设明文密码为 `123`,则会返回类似于 `Encrypted 2be98afc86aa7f2e4cb79ce10bec3fd89` 的加密结果[^3]。 - **Linux 或 Mac 系统** 对于 Linux 和 macOS 用户,可以通过以下命令完成相同的操作: ```bash cd /data/data-integration encr.sh -kettle 明文密码 ``` 此方式适用于需要批量生成加密密码或者自动化脚本场景下的需求。 --- #### 二、通过 JavaScript 组件完成加密与解密 除了使用命令行外,还可以借助 Kettle 内置的 Java 类库,在转换中嵌入 JavaScript 脚本来动态完成加/解密过程。 ##### 1. 加密操作 创建一个新的转换并添加一个 “JavaScript” 步骤。编写如下代码片段即可完成字段内容的加密工作: ```javascript var encrypted_password = '未加密'; encrypted_password = "Encrypted " + Packages.org.pentaho.di.core.encryption.Encr.encryptPassword(a); // a 表示待加密的目标字段值 ``` 其中变量 `a` 应替换为目标列的实际名称或表达式[^2]。 ##### 2. 解密操作 同理,如果已经存在被加密过的数据,则可通过下面这段逻辑将其还原成原始状态: ```javascript var decrypted_password = ''; decrypted_password = Packages.org.pentaho.di.core.encryption.Encr.decryptPassword(password); // password 即为之前存储下来的已加密形式的数据项 ``` 注意这里调用了不同的函数接口来进行逆向变换恢复初始形态[^1]。 另外还有一种更通用版本的方法叫做 `decryptPasswordOptionallyEncrypted()` ,它能够自动判断传入参数是否已经被编码过再决定采取何种策略去解析它们[^4]。 --- #### 总结 综上所述,无论是采用外部独立运行还是集成到流程内部的方式都可以很好地满足日常开发运维过程中涉及到的安全性考量方面的要求。对于简单的应用场景推荐直接运用官方提供的批处理文件快速获得所需的结果;而对于更加复杂灵活定制化程度较高的场合,则建议充分利用好所提供的 API 结合自定义编程手段达成目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值