打开kettle的资源库配置文件respositories.xml,可以看到数据库的连接密码是加密的。
例如
<username/>
<password>Encrypted sasdfere13rrrf</password>
加解密由org.pentaho.di.core.encryption.Encr负责,算法非常简单:
public static final String encryptPassword(String password)
{
if (password==null) return "";
if (password.length()==0) return "";
BigInteger bi_passwd = new BigInteger(password.getBytes());
BigInteger bi_r0 = new BigInteger(SEED);
BigInteger bi_r1 = bi_r0.xor(bi_passwd);
return bi_r1.toString(RADIX);
}
public static final String decryptPassword(String encrypted)
{
if (encrypted==null) return "";
if (encrypted.length()==0) return "";
BigInteger bi_confuse = new BigInteger(SEED);
try
{
BigInteger bi_r1 = new BigInteger(encrypted, RADIX);
BigInteger bi_r0 = bi_r1.xor(bi_confuse);
return new String(bi_r0.toByteArray());
}
catch(Exception e)
{
return "";
}
}
数据库密码如果需要加密,保存后来会以特定字符开头
public static final String PASSWORD_ENCRYPTED_PREFIX = "Encrypted ";
加密方法,被加一个方法调用
public static final String encryptPasswordIfNotUsingVariables(String password)
{
String encrPassword = "";
List<String> varList = new ArrayList<String>();
StringUtil.getUsedVariables(password, varList, true);
if (varList.isEmpty())
{
encrPassword = PASSWORD_ENCRYPTED_PREFIX+Encr.encryptPassword(password);
}
else
{
encrPassword = password;
}
return encrPassword;
}
是否加密,由StringUtil的方法决定
public static void getUsedVariables(String aString, List<String> list, boolean includeSystemVariables)
{
getUsedVariables(aString, UNIX_OPEN, UNIX_CLOSE, list, includeSystemVariables);
getUsedVariables(aString, WINDOWS_OPEN, WINDOWS_CLOSE, list, includeSystemVariables);
}
如果密码是使用变量的方法,就不会加密,即%%变量%%和${变量}的方式填写,就不会加密。如果将变量调到Java的系统属性中,打开资源库时,就可以使用。
分享到:
相关推荐
7. **Kettle的JDBC连接配置**:在Kettle的数据库连接配置中,除了提供正确的URL、用户名和密码,还需根据实际情况填写额外的连接属性,如`useSSL`、`trustServerCertificate`等。 解决"ORA-28040"错误可能需要逐个...
在Kettle中配置SQL Server数据库连接时,我们需要依赖特定的数据库驱动,这就是SQL JDBC驱动。 SQL JDBC驱动是微软提供的Java Database Connectivity (JDBC) 驱动,使得Java应用程序能够与SQL Server进行交互。有两...
- **创建数据库连接**:在Kettle的工作台中,通过“创建” -> “数据库连接”来新建一个连接。在弹出的对话框中,选择“Microsoft SQL Server(jTDS)”作为驱动类型。 - **配置连接参数**:输入以下关键信息: ...
- 在Kettle中,创建新的数据库连接,选择“自定义”类型。 - 指定数据库类型为“ClickHouse”或输入JDBC驱动类名(通常是`ru.yandex.clickhouse.ClickHouseDriver`)。 - 填写JDBC URL(如`jdbc:clickhouse://...
MySQL数据库连接驱动包是用于Java应用程序与MySQL数据库交互的关键组件,它遵循JDBC(Java Database Connectivity)标准。在Java编程中,如果你想要访问MySQL数据库,就需要这个驱动包,也称为MySQL Connector/J。...
3. **配置数据库连接**:在Kettle的 Spoon 界面中,创建一个新的“数据库连接”步骤。在“类型”下拉菜单中,选择“MariaDB / MySQL”。然后,输入以下必要的连接信息: - 主机名:MariaDB服务器的IP地址或域名。 ...
这个问题通常表明数据库连接在尝试使用SSL进行加密时遇到了障碍,可能影响数据的安全传输和系统的正常运行。为了解决这一问题,我们需要深入了解SSL加密以及如何配置SQL Server和相应的驱动程序。 SSL(Secure ...
用户可以通过设置窗口配置数据库连接的详细信息,如服务器地址、端口、用户名和密码等。 **3.3 选项** 除了基本的连接信息外,用户还可以配置其他高级选项,例如SSL加密、字符集编码等。 **3.4 常用数据库连接...
Kettle提供了丰富的数据源连接选项,支持多种数据库系统。配置步骤通常包括: 1. **选择数据源类型**:根据实际需求选择数据库类型,如MySQL、Oracle等。 2. **填写连接信息**:输入数据库服务器地址、端口号、...
数据库连接设置还支持高级选项,例如连接池配置、SSL加密等,以适应更复杂的应用场景。 ##### 3.4 数据库用法 一旦建立了数据库连接,用户就可以在转换步骤中使用这些连接来执行数据读取或写入操作。 #### 4. SQL...
在IT领域,数据库连接是开发过程中的重要环节,特别是对于InterSystems Cache这样的高性能数据库系统。本文将详细讲解如何在Windows环境中使用JDBC(Java Database Connectivity)和ODBC(Open Database ...
【Kettle与MySQL数据库连接】 Kettle,又称为Pentaho Data Integration(PDI),是一款强大的数据集成工具,用于在不同数据源之间进行数据转换和加载。它支持多种数据库系统,包括MySQL。在Kettle中连接到MySQL...
7. 安全性:在建立数据库连接时,必须考虑安全性,包括使用安全的连接方式(如SSL加密),限制不必要的权限,以及定期更改登录密码,以防止未授权的访问。 8. 错误处理和调试:在实际应用中,可能会遇到各种连接...
在Kettle中,创建数据库连接通常在“数据库连接”步骤中完成,需要填写数据库类型、服务器地址、端口、数据库名、用户名和密码等信息,并指定驱动路径。导入压缩包中的JAR文件至Kettle的类路径,可以确保所有必要的...
5. **Libraries and Plugins**:包含了各种库文件和插件,这些扩展了PDI的功能,支持连接到不同的数据库、文件系统、云服务等。 6. **Samples and Documentation**:提供示例转换和作业,以及用户手册和API文档,...
4. 在Kettle的Job或Transformation中创建新的MySQL数据库连接,输入正确的服务器地址、端口、数据库名、用户名和密码。 5. 测试连接以确认配置成功。 通过以上步骤,Kettle用户现在可以利用这两个驱动来访问和操作...
数据库连接是Kettle中最基础的功能之一,它允许用户轻松地与各种类型的数据库交互。 **3.2 设置窗口** 在Spoon中,可以通过简单的图形界面来设置数据库连接。用户需要填写数据库的URL、用户名和密码等信息。 **...