MyCat中密码安全问题

连接MyCat的用户名和密码以及MyCat连接数据主机的用户名和密码都是写在配置文件中,如果用明文编写,往往是不安全的很容易泄露。MyCat也考虑到了密码的安全问题,为我们提供了密码加密的方式。

1.前端连接MyCat的密码加密

连接MyCat的用户名和密码是在server.xml文件中的标签中配置的。

       
        root
        TESTDB
		
		0
        
        false
		

        
        
    

将目录切换到mycat的安装目录下的lib目录中,有一个Mycat-server-XXXXX-release.jar的jar包,XXXXX表示的是mycat的版本。版本不同数字也不同。在当前目录下运行以下命令:

加密命令
java -cp Mycat-server-1.6.7.1-release.jar io.mycat.util.DecryptUtil 0:root:root
运行结果
CrjpLhvVJkHk0EPW35Y07dUeTimf52zMqClYQkIAN3/dqiG1DVUe9Zr4JLh8Kl+1KH1zd7YTKu5w04QgdyQeDw==

只需要将上述命令的运行结果替换之前的明文密码,就完成了mycat登录密码的加密。当然还需要将usingDecrypt的属性值修改为1。

加密命令的解释:

java -cp 【加密程序jar包】 【加密类】 0:用户名:密码 

java -cp 运行指定jar包中的指定类

【加密程序jar包】 你自己lib目录下的Mycat-server-XXXXX-release.jar文件

【加密类】 mycat中的加密类io.mycat.util.DecryptUtil,不用变

0 表示是对mycat登录验证的密码进行加密

2.MyCat后端连接数据主机的密码加密

mycat连接数据主机的信息是在schema.xml文件中配置的


		
		select user()
		
		
			
			
		
		
	

同样还是在mycat的安装目录下的lib目录中,运行以下命令将明文加密。将密文替换原有的明文,在writehost标签中添加属性usingDecrypt="1",表示开启密码加密。

加密命令:
java -cp Mycat-server-1.6.7.1-release.jar io.mycat.util.DecryptUtil 1:hostM1:root:root
运行结果:
Bg/6QzS47Mq77VtK1P+jOrCOq6AVzQjTLByvrCFrsySXELi1b3hmpBWFLin0JciKRYREzZZKiQLEttXUq2x+Cg==

对比上一条加密命令可以发现,这两条加密名优稍微有点不同。

1:表示对mycat连接数据主机的密码进行加密

hostM1:表示对哪一个数据主机进行加密(因为mycat可以连接多个数据主机,所以要指明此条密文是针对哪个数据主机的)

通过以上方式完成了对密码的加密,在mycat的服务中不会再有明文的密码出现了。

注意:

1.加密命令必须在mycat安装目录下的lib目录中运行

2.使用加密后的密码,必须配置属性usingDecrypt为1

你可能感兴趣的:(MyCat中密码安全问题)