我们的工程项目往往是使用云数据库的,连接使用账号密码就行了,但是程序里直接有密码是十分不安全的

这里我参考了别人的博客对这个问题进行解决

1. 需求背景

我们在开发应用时,需要连接数据库,一般把数据库信息放在一个属性配置文件中,比如java的mysql连接往往是这样

jdbc.properties的代码

jdbc.url=jdbc\:mysql\://127.0.0.1/messageboards

jdbc.username=root

jdbc.password=root

C#连接oracle的代码

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=139.196.213.70)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=Orcl)));Persist Security Info=True;User ID=scott;Password=tiger;

隔着屏幕就感觉到了不安全,即使你对用户给定了其访问用户表的权限,但是人家一脱库这些东西全都被盗走可就太秀了

用户表的数据我们都不明文明文存储,何况这个更敏感的服务器信息呢,同样还是加密处理

2. 实现原理

实现原理其实很简单,配置文件存储加密后的用户名和密码,重写Druid数据源的两个方法setUsername(String username)和setPassword(String password)对信息解密。

3. 实现方式

3.1 写加密工具

首先得有一个加密工具,具有加解密功能,这里为了方便直接使用Druid(就是对 sql、数据源,web、url、session等进行监控的那个)中的工具类com.alibaba.druid.filter.config.ConfigTools。使用其中的encrypt(String plainText)方法和decrypt(String cipherText)方法采用默认的公私玥加解密。

3.2 加密配置文件

仅需将username和密码换为自己加密过的就好

使用ConfigFilter解密密码,有三种方式配置:

1) 可以在配置文件my.properties中指定config.decrypt=true

2) 也可以在DruidDataSource的ConnectionProperties中指定config.decrypt=true

3) 也可以在jvm启动参数中指定-Ddruid.config.decrypt=true

mysql连接密码加密_数据库连接用户名和密码加密相关推荐

  1. mysql连接池设计_数据库连接池(基于MySQL数据库)

    使用JDBC是怎么保证数据库客户端和数据库服务端进行连接的? 通过代码: conn=DriverManager.getConnection(url, username, password); JDBC ...

  2. mysql连接字符串 端口_数据库连接字符串 端口号

    如何获取SQL server数据库的连接字符串 步骤:1.新建一个txt文本文档,然后把后缀名改为udl2.打开 新建文本文档. udl ,并选择相应的数据库进行连接,之后点击 "测试连接& ...

  3. oracle mysql连接池配置文件_数据库连接池两种配置方式详解

    数据库连接池: 负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接 ...

  4. c3p0 mysql 连接池配置文件_数据库连接池c3p0的使用

    原标题:数据库连接池c3p0的使用 来源:java联盟 https://mp.weixin.qq.com/s/5Tbkf8dVFfH8AvtqWl-7Xg 程序员共读整理发布,转载请联系作者获得授权 ...

  5. mysql连接10061错误_数据库连接错误出现10061是怎么回事?

    展开全部 数据库连32313133353236313431303231363533e4b893e5b19e31333363396461接错误出现10061解决方法如下: 1.在服务端MySQL文件夹下 ...

  6. 数据库连接用户名和密码加密

    我们的工程项目往往是使用云数据库的,连接使用账号密码就行了,但是程序里直接有密码是十分不安全的 这里我参考了别人的博客对这个问题进行解决 1. 需求背景 我们在开发应用时,需要连接数据库,一般把数据库 ...

  7. mysql连库串_数据库连接串整理 - osc_ac5z111b的个人空间 - OSCHINA - 中文开源技术交流社区...

    常用JDBC驱动与连接字符串 MySQL driver:com.mysql.jdbc.Driver url:jdbc:mysql://localhost:3306/mydb MySQL url格式:j ...

  8. asp.net mysql连接字符串_ASP.NET数据库连接字符串总结

    关于数据库链接字符串的相关知识,我们介绍过很多,建议大家看看这两篇文章,<深入了解SQL Server连接字符串>和<MySql连接字符串的说明>,供参考.下面介绍ASP.NE ...

  9. mysql连接access失败_我用工具怎么连接不上mysql数据库的? MySql access denied for user错误...

    MySql access denied for user错误 方法/步骤 MySql远程连接时的"access denied for user **@**"错误,搞的我很头大,后来 ...

最新文章

  1. Date 和 SimpleDateFormat 类表示时间
  2. Linux中的DRM、DRI、DMA 介绍
  3. Eclipse + Pydev开发Python时import报错解决方法
  4. mysql带条件查询,联表查询
  5. 周博磊自述5年研究经历:一个神经元的价值和一个神经病的坚持
  6. linux 更新软件源
  7. sql季度函数_SparkSql几个常用函数
  8. vue从创建到完整的饿了么(7)点击事件与页面跳转
  9. 小电流接地系统配电线路弧光高阻接地故障电压特征分析ATP-EMTP仿真建模
  10. 树莓派蜂鸣器唱歌c语言,关于蜂鸣器唱歌程序
  11. win10重装,检测到硬盘错误:在MBR硬盘上没有找到可以引导的分区
  12. 使用C++实现n阶行列式的计算
  13. excel甘特图制作
  14. Docker的深入浅出(入门新手篇)
  15. C++学习笔记12:编程练习二
  16. 下载windows 聚焦锁屏的图片
  17. 使用Hyper-V集群和存储功能以达到HA
  18. 面向对象(四)多态以及多态性,
  19. 阿里云服务器糟挖矿程序攻击
  20. 亚马逊上传报告报错常见情况

热门文章

  1. Oracle之cmd 常用命令
  2. matlab mcr调用,mcr环境下,vs调用matlab,报错access violation
  3. 全国程序员薪酬大曝光!看完我酸了····
  4. JavaScript和Java求字符串的字节长度
  5. 盘点国内好用的企业网盘
  6. Maven项目启动报错 org.apache.catalina.LifecycleException: Failed to start component,手动添加Oracle JDBC 驱动jar包
  7. element输入框限制数字输入
  8. VCC、 VDD、VEE、VSS
  9. 人工智能:语音识别技术介绍
  10. 网课在线搜题公众号制作