开发者社区> 问答> 正文

Druid的数据库密码加密问题

看了下源码实现。使用的是privateKey加密,publicKey解密,而且密文和publicKey都可以通过配置文件取得,用ConfigTools.decrypt(publicKey, 密文)不就解密出来密码了?

T76.png

这里看出来明显publicKey和密码都在一起的。

原提问者GitHub用户lsgggg123

展开
收起
山海行 2023-07-05 21:36:16 438 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    Druid是一种开源的高性能数据库连接池,它支持对数据库密码进行加密存储,以提高数据库的安全性。在Druid中,可以使用以下方式对数据库密码进行加密:

    在配置文件中指定加密密钥
    在Druid的配置文件中,可以通过以下方式指定加密密钥:

    Copy

    指定加密密钥

    druid.filters.config.decrypt.key=myKey
    在这个配置中,myKey是自定义的加密密钥。指定了加密密钥后,Druid就可以使用这个密钥对数据库密码进行加密。

    对数据库密码进行加密
    在配置文件中指定加密密钥后,可以使用以下方式对数据库密码进行加密:

    Copy

    加密数据库密码

    druid.password=ENC(加密后的密码)
    在这个配置中,加密后的密码是使用指定的加密密钥对原始密码进行加密得到的。可以使用Druid提供的druid-encrypt工具对密码进行加密,例如:

    Copy
    java -cp druid-1.2.6.jar com.alibaba.druid.filter.config.ConfigTools myPassword
    在这个命令中,myPassword是原始密码,运行命令后,就会输出加密后的密码。将加密后的密码复制到配置文件中即可。

    2023-07-30 09:39:26
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    根据你提供的截图,确实可以看到在Druid的配置文件中,公钥和密码都存在,并且可以直接通过配置文件获取。

    Druid使用非对称加密算法(如RSA)来保护密码的安全性。在配置文件中,使用公钥加密密码,并将加密后的密码存储在配置文件中。应用程序在需要使用密码时,通过私钥解密被加密的密码来获取明文密码。

    然而,如果公钥和密码都可以轻易地从配置文件中获取,确实存在一定的安全风险。通过配置文件中的公钥和加密过的密码,使用ConfigTools.decrypt方法可以轻松地解密出明文密码。

    为加强安全性,务必确保保护私钥的机密性,以防止未授权访问。私钥应严格限制访问权限,并妥善保管。此外,建议将公钥存储在安全的地方,以防止不必要的公开。

    如果你对Druid的密码加密机制和安全性有进一步的疑问或需要更多建议,请考虑与Druid的官方支持团队或社区进行联系咨询,他们应能为你提供更准确和详细的解释和指导。

    2023-07-11 17:13:26
    赞同 展开评论 打赏
  • 这个只能保证一定程度的安全,比明文安全一些,但不能保证绝对安全的

    原回答者GitHub用户wenshao

    2023-07-06 12:16:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于可信计算与加密计算 打造云上原生计算安全 立即下载
\"视频服务特色解决方案——直播连麦与点播加密 \" 立即下载
量子加密通信技术 立即下载