SQL Anywhere 16中的JDBC密码加密

时间:2016-07-21 14:48:36

标签: java encryption jdbc connection-string sqlanywhere

任何人都知道在ConnectionString中加密密码的好方法吗?

当我使用sybase / sap工具正常使用时,我可以连接 与dbisql.exe @encrypted_config_file.cfg

在encrypted_config_file.cfg中有关存储的servername,user和password的信息。然后我可以用dbhide.exe来加载这个文件。 现在只有数据库服务器可以在不告诉用户真实密码的情况下进行连接。

现在任何人都可以在java或C中使用这样的解决方案,但在连接字符串中作为选项或参数

--using jconn3.jar 
DriverManager.registerDriver((Driver) Class.forName( "com.sybase.jdbc3.jdbc.SybDriver" ).newInstance() ); 
con = DriverManager.getConnection("jdbc:sybase:Tds:HOSTNAME:PORT?ServiceName=Servername", "USER", "PASSWORD");

1 个答案:

答案 0 :(得分:0)

Sybase info-center site开始,您似乎需要执行以下操作:

String url = "jdbc:sybase:Tds:myserver:3697";
Properties props = new Properties();
props.put("ENCRYPT_PASSWORD ", “true”);
props.put("JCE_PROVIDER_CLASS",
"org.bouncycastle.jce.provider.BouncyCastleProvider");

/* Set up additional connnection properties as needed */
props.put("user", "xyz");
props.put("password", "123");

/* get  the connection */
Connection con = DriverManager.getConnection(url, props);

希望这会有所帮助。