精华内容
下载资源
问答
  • 使用AES256加密技术实现tomcat7对连接池数据库密码加密解密,资源中包含加密小程序,小程序实现加密,tomcat中实现解密,方便客户自己修改数据库密码且是密文!
  • 详细讲解tomcat 连接池数据库解密加密方法以及过程。
  • TOMCAT 连接池数据库密码加密方法

    千次阅读 2018-11-18 03:08:50
    TOMCAT 连接池数据库密码加密方法

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

    原文来自:http://club.youshang.com/173/viewspace-1701,因为我觉得作者讲解不太详细,我把后面给去掉,保留了作者的前半部份。

      Tomcat 连接池写在server.xml里的数据用户以及密码都是明文,这样非常不安全的,如果一但知道了这个数据库名和密码获得,可想而知。 

    那么如何实现对数据库密码加密呢,,因为喜欢开源,接下来就奉献给大家。

        最开始的想法是通过tomcat的源码从catalina.java这个加载类开始找,看连接池是如何加载的,然后修改这个类,重新ant。后来发现了连接池用的factory类,决定重这个类开始下手。

    如果才能把用户名或者是密码使用加密算法进行加密使用呢,这就需要对Tomcat一般依赖dbcp连接池配置。

    http://jakarta.apache.org/commons/dbcp/下载commons-dbcp源码包(一定要对用tomcat的版本),对org.apache.commons.dbcp.BasicDataSourceFactory类修改,根据"PROP_PASSWORD"RA 找到如下:

    value = properties.getProperty(PROP_PASSWORD);

            if (value != null) {

                dataSource.setPassword(value);

            }

    可以看得出来就是将配置文件中取出的密码,进行赋值给相关变量了,这个时候把准备好的加密码文件加进去,如我的加密码JAVA为Encode.java,将这个文件放在这个包下面,但要保证该Encode.java最好不引用除J2SE以外的其它包,否则还得把包给加进去,我这里改成:

    value = properties.getProperty(PROP_PASSWORD);

            if (value != null) {

                dataSource.setPassword(Encode.decode(value));

            }

    就表示对从数据源配置中取过来的密码进行解密了,这个时候可见数据源配置中密码如下:

        <parameter>

          <name>password</name>

          <value>1f65866187612115</value><!--原为123456-->

        </parameter>

    当然这里的密码是采用上面提到的Encode.java的encode进行加密码的,与decode是可逆的,这样才可以正确解密。

    另外说明一下,从官方网站下载下来的源程序,采用ANT并不一定可以直接编译,我这里就是这种情况,编译的时候把错,将其导入ECLIPSE工程中,并加入相关POOL包,通过ANT也编译不过去,我猜想可能是ANT版本的原因,因为后面的我把"工程->自动编译..."给勾上后,自动编译过去,将这两个类BasicDataSourceFactory和Encode拷贝出来,将原来的包用WINRAR打开,放到其路径中。另外这外commons-dbcp-1.2.2.jar放到server/lib下面不行,至少我这边就不行,我的TOMCAT是5.0,我前面一直在这里找这个包都没有找到,但是我看数据源却是采用的BasicDataSourceFactory,后来动用了UE才搜索出来,原来在common的lib下面,将其拷贝进去,重启TOMCAT登陆,OK。

    本文出自:冯立彬的博客



               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • tomcat数据库连接池密码加密

    千次阅读 2017-07-09 22:12:13
    应用部署到tomcat上后,数据库连接信息通常配置在context.xml,默认配置都是明文形式,如数据库用户名、密码等,这样可能会导致配置信息被其他人窃取,造成安全隐患,下面介绍下通过对配置信息加解密来保证数据库的...

       应用部署到tomcat上后,数据库连接信息通常配置在context.xml,默认配置都是明文形式,如数据库用户名、密码等,这样可能会导致配置信息被其他人窃取,造成安全隐患,下面介绍下通过对配置信息加解密来保证数据库的安全性。

       Tomcat默认使用的是DBCP数据库连接池,所以可以通过更改DBCP来实现配置信息的加解密,不同tomcat版本具体实现方式不太一样,这里介绍tomcat7及以上版本的设置方法。

      DBCP数据库连接池默认控制类是Tomcat/lib/tomcat-dbcp.jar 中的org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.class,可以通过反编译工具反编译下,或者去apache官网下载对应版本tomcat的源码,更改该类编译后替换到相应jar中即可,但是一经替换,该tomcat下所有连接池都会走同样的配置,在实际应用中不太灵活,实际上,在数据库连接配置时可以指定相应的DBCP类,如:

       <Resource name="orcl" auth="Container"type="javax.sql.DataSource"

    username="runqian"password="\u0072\u0075\u006e\u0071\u0069\u0061\u006e"

    driverClassName="oracle.jdbc.driver.OracleDriver"

    url="jdbc:oracle:thin:@localhost:1521:orcl"

    maxActive="100"

    maxIdle="30"

    maxWait="100"

    factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory1"

    />

    在该连接池中,factory可以指定DBCP处理类,到时候数据库连接时会通过该类进行处理。

    本例中password用unicode进行了编码处理,这样只需要在org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory1中进行解码即可,找到:

    value =properties.getProperty("password");

           if(value != null)

               dataSource.setPassword(decodeUnicode(value));

    在这里用decodeUnicode对获取到的密码进行解码即可,decodeUnicode类源码:

    public static String decodeUnicode(Stringstr) {

                   Charset set =Charset.forName("UTF-16");

                   Pattern p =Pattern.compile("\\\\u([0-9a-fA-F]{4})");

                   Matcher m = p.matcher( str );

                   int start = 0 ;

                   int start2 = 0 ;

                   StringBuffer sb = new StringBuffer();

                   while( m.find( start ) ) {

                    start2 = m.start() ;

                    if( start2 > start ){

                     String seg = str.substring(start, start2) ;

                     sb.append( seg );

                    }

                    String code = m.group( 1 );

                    int i = Integer.valueOf( code , 16 );

                    byte[] bb = new byte[ 4 ] ;

                    bb[ 0 ] = (byte) ((i >> 8) & 0xFF);

                    bb[ 1 ] = (byte) ( i & 0xFF ) ;

                    ByteBuffer b = ByteBuffer.wrap(bb);

                    sb.append( String.valueOf( set.decode(b)).trim() );

                    start = m.end() ;

                   }

                   start2 = str.length() ;

                   if( start2 > start ){

                    String seg = str.substring(start, start2) ;

                    sb.append( seg );

                   }

                   return sb.toString() ;

                  }

    这样就可以实现对密码的加解密操作,本例中实现了对密码的unicode编码,实际中可以通过其他加密方式加密,只需要在DBCP处理类中用相应的方式解密即可。

    展开全文
  • tomcat数据库配置想做成AES对称加密的方式存储,如weblogic。 这个要怎么实现呢,前提要保证密钥是开发人员不能接触到的
  • SpringBoot项目经常将连接数据库密码明文放在配置文件里,安全性就比较低一些,尤其在一些企业对安全性要求很高,因此我们就考虑如何对密码进行加密,文中给大家介绍加密的两种方式,感兴趣的朋友一起看看吧
  • Tomcat配置数据库连接加密访问

    千次阅读 2018-07-26 11:44:32
    1.jar包地址:AES加密访问...3.配置D:\apps\apache-tomcat-7.0.90\conf\server.xml文件,数据库加密访问 4.解压tomcat-encrypt.jar包,对用户名密码进行加密 5.加密运行main方法 6.数据源配置如下, ...

    1.jar包地址:AES加密访问数据库连接

    2.将jar包放置到tomcat 的lib目录下

    3.配置D:\apps\apache-tomcat-7.0.90\conf\server.xml文件,数据库加密访问

    4.解压tomcat-encrypt.jar包,对用户名密码进行加密

    5.加密运行main方法

    6.数据源配置如下,

    展开全文
  • 需要修改tomcat下的/common/lib下的commons-dbcp-1.2.1.jar(注意版本号:我这是tomcat 5.5版本)。准备工作:先到apache下载commons-dbcp这个包的源代码。再找个加密类(加密算法我这选DES)开始:修改org.apache.commons....

    需要修改tomcat下的/common/lib下的commons-dbcp-1.2.1.jar(注意版本号:我这是tomcat 5.5版本)。

    准备工作:

    先到apache下载commons-dbcp这个包的源代码。

    再找个加密类(加密算法我这选DES)

    开始:

    修改org.apache.commons.dbcp.BasicDataSourceFactory.java这个类就ok了.

    value = properties.getProperty(PROP_PASSWORD);

    if (value != null) {

    dataSource.setPassword(value);

    }

    修改为

    value = properties.getProperty(PROP_PASSWORD);

    if (value != null) {

    byte [] b = CryptDESede.decode(new sun.misc.BASE64Decoder().decodeBuffer(value), "yysoft36".getBytes());

    dataSource.setPassword(new String(b));

    }

    就好有。

    但运行tomcat还是提示连接数据库密码错误。

    几经周折。发现在项目的web-inf/lib下也有个dbcp包。把这个包去除。连接成功。

    分享到:

    18e900b8666ce6f233d25ec02f95ee59.png

    72dd548719f0ace4d5f9bca64e1d7715.png

    2009-09-14 10:19

    浏览 2584

    评论

    展开全文
  • 使用AES256加密技术实现tomcat7对连接池数据库密码加密解密,资源中包含加密小程序,小程序实现加密,tomcat中实现解密,方便客户自己修改数据库密码且是密文!支持多操作系统如:linux mac os 文件太多分成两部分请...
  • 那么如何实现对数据库密码加密呢,,因为喜欢开源,接下来就奉献给大家。最开始的想法是通过tomcat的源码从catalina.java这个加载类开始找,看连接池是如何加载的,然后修改这个类,重新ant。后来发现了连接池用的...
  • Tomcat JNDI配置忽略,网上这方面的文章一大堆。废话少说直接代码。packageorg.apache.tomcat.dbcp;importjavax.naming.RefAddr;importjavax.naming.Reference;importorg.apache.tomcat.dbcp.dbcp....
  • druid数据库密码加密

    2021-07-30 10:10:58
    druid 配置数据库密码加密 一、springboot 使用密码加密 1.1 引入maven依赖 <dependency> <groupId>...打开引入依赖的所在位置 1.3 在当前目录打开dos窗口 1.4 使用命令生成加密密码&密钥(两种命令二选一,推荐命令2...
  • } } ------解决方案-------------------- 我刚好弄过这个 我这里是ssh的,先用加密算法加密数据库密码,然后再(我那里是spring解析的数据源)继承你解析数据源的spring的那个类,重写一个子类进行解密,把spring...
  • TOMCAT 连接池数据库密码可以加密

    千次阅读 2014-07-28 11:53:09
    TOMCAT 连接池数据库密码可以加密   url: ...    Tomcat 连接池大家应该都用过吧,那写在server.xml里的数据用户以及密码都是明文,这样非常不安全的,...那么如何实现对数据库密码加密呢,,因为喜欢开源,接下
  • 问题背景: ...本文将介绍如何对tomcat数据库连接池配置文件中的密码进行加密处理。   问题解决思路: 将配置文件用户相关的信息(例如:密码)进行加密使其以密文形式存在,进行初始化连接池的时候
  • 在Tomcat服务器使用当中,我们经常会碰到各种错误原因和稀奇古怪的问题,就当最简单的“Tomcat数据库连接池数据库密码加密”来说吧,碰到这种问题该怎么解决呢?我们先看一段加密的Java工具类: package ...
  • MyBatis - 使用示例(五)SpringBoot配置数据库密码加密 你在使用 MyBatis 的过程中,是否有想过多个数据源应该如何配置,如何去实现?出于这个好奇心,我在 Druid Wiki 的数据库多数据源中知晓 Spring 提供了对多...
  • 方法一:使用数据库连接池 Druid中的非对称加密算法 1、引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <...
  • 加密,用以下命令将用户名和密码加密cmd命令行执行java -cp druid-1.0.15.jar com.alibaba.druid.filter.config.ConfigTools 加密串得到密文2.用户名解密:package com.heli.core.user.common;import ...
  • 现在很多项目都是把数据库的密码明文放在配置文件中,这样其实是不安全的,应该将密码加密后再放到配置中,这样一定程度的保护数据库密码的安全,那怎么实现呢,这里提供两种方案: 一、实现密码回调逻辑。 大体...
  • 最近看了网上一些关于TOMCAT 连接池数据库密码加密方法,感觉写的都不是很详细,自己研究了下,有些心得,写出来和大家共享一下. 首先,先去http://commons.apache.org/dbcp/ 下载commons-dbcp源码包,我下载的版本是...
  • druid 数据库密码加密

    千次阅读 2015-02-26 12:26:24
    2.1 执行命令加密数据库密码 在命令行中执行如下命令: java -cp druid-0.2.23.jar com.alibaba.druid.filter.config.ConfigTools you_password 输出 h9gzp23dkJIZ95Xzj/waxsC2oJ1JoWTh76o4aw7+uGGh63...
  • ![图片说明](https://img-ask.csdn.net/upload/202004/30/1588238546_338094.png)![图片说明]... 加密数据库用户名和密码本地能跑;打成war包单独用tomcat就报数据库初始化错误;急急急。。。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,569
精华内容 7,027
关键字:

tomcat数据库密码加密