gpt4 book ai didi

encryption - 使用 Talend Data Integration 对 .properties 文件中的密码进行加密/加密和解密

转载 作者:行者123 更新时间:2023-12-03 23:44:50 25 4
gpt4 key购买 nike

运行作业的一种建议方法是将上下文参数保存在属性文件中。
像这个:

#
#Wed Dec 16 18:23:03 CET 2015
MySQL_AdditionalParams=noDatetimeStringSync\=true
MySQL_Port=3306
MySQL_Login=root
MySQL_Password=secret_password_to_cipher
MySQL_Database=talend MySQL_Server=localhost

这真的很简单也很有用,但问题在于密码是以明文形式保存的。

所以我正在寻找轻松加密的方法。
以下是 Stack overflow 中关于密码加密技术已经讨论过的 2 个非常有趣的问题:
  • Encrypt passwords in configuration files
  • Securing passwords in properties file

  • 但它们是 Java 原生的,我正在寻找更好的 Talend 集成。我已经在我的 Talend 工作中尝试了不同的方法:
  • 使用 base64 的简单混淆密码编码
  • 使用 tEncrypttDecrypt来自锻造厂的组件
  • 使用 Jasypt ot JavaXCrypto图书馆
  • 使用 pwdstore来自锻造厂的日常工作

  • 所有这些技术都在教程(法语,抱歉)中描述,解释如何 crypt passwords in Talend

    但是遇到了另一个问题:用于加密/解密的 key 总是清晰的,所以如果你知道解决这一点的好方法,我很乐意尝试它 .

    最佳答案

    从根本上说,应用程序可以访问的任何内容都可以通过有人闯入系统/接管应用程序的控制权来访问。
    即使您使用混淆(例如 base64 或更高级),或使用 key 可用的真实加密(即使它们也可能被混淆)。

    所以基本上没有足够好的方法来做你想做的事情,更糟的是:它根本不存在。

    那么你会怎么做呢?

    1. 权利限制
    MySQL_Login=root是一个大问题……应用程序的泄露将导致数据库(及其数据)的立即泄露。

    因此,将权限限制为应用程序绝对需要的权限。

    这确实应该完成并且很容易实现。

    2. 分离用户和管理员级别访问

    如果某些东西只在用户交互后才需要,您可以使用用户提供的 secret (例如,用户的密码可以提供一个哈希值,可以进行异或运算,并为您提供一个并不总是存在于应用程序中的 key ,也配置文件)。

    您可以使用它,例如将权限分为两个级别:普通用户级别,它只具有使应用程序为普通用户工作的最低限度的权限(但例如不是允许管理应用程序本身的应用程序管理权限),并使用保留的 secret 当没有管理员登录到应用程序的管理部分时,用户将(部分) key 保留在应用程序之外。

    老实说,这很少做到,也不那么容易。

    但即使如此,您基本上也必须考虑访问例如如果应用程序受到破坏,则要受到破坏的数据库。

    这也是为什么应用程序用户密码等数据不应该(不得)在没有适当预防措施的情况下存储在数据库中的原因。

    关于encryption - 使用 Talend Data Integration 对 .properties 文件中的密码进行加密/加密和解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34393803/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com