启用Oracle Net Encryption之后标准JDBC连接可能

时间:2017-07-03 08:27:35

标签: oracle networking encryption jdbc

使用Oracle Net Manager启用网络加密。

sqlnet.ora文件:

  

SQLNET.ENCRYPTION_CLIENT = required

     

SQLNET.AUTHENTICATION_SERVICES =(NTS)

     

SSL_VERSION = 0

     

SQLNET.ENCRYPTION_SERVER =必需

     

SSL_CLIENT_AUTHENTICATION = TRUE

     

SQLNET.CRYPTO_SEED =' 0123456789'

     

SQLNET.ENCRYPTION_TYPES_CLIENT =(AES256)

     

SQLNET.ENCRYPTION_TYPES_CLIENT =(AES256)

     

...

Java代码:

Properties props = new Properties();
props.put("oracle.net.encryption_client", "required");
props.put("oracle.net.encryption_types_client", "AES256");
props.put("user", "scott");
props.put("password", "tiger");

使用其他算法名称,例如AES128:props.put(" oracle.net.encryption_types_client"," AES128");输出ORA-12650。还行吧。但是只能将用户和密码放到Properties连接中:

Properties props = new Properties();
props.put("user", "scott");
props.put("password", "tiger");

如果需要Oracle Net Encryption,如何禁用标准连接?

1 个答案:

答案 0 :(得分:0)

如果你没有设置" oracle.net.encryption_types_client"在JDBC瘦驱动程序中的属性,默认情况下驱动程序将" 接受"加密,因为你已经加密" 必需"在服务器上,加密将打开。总而言之,如果你 需要"服务器上的加密将使所有连接使用加密。任何不支持加密的客户端都无法连接。

此ASO协商在此doc中进行了解释,请查看表格" 表9-2加密和数据完整性协商"。默认情况下,JDBC瘦驱动程序接受加密。