Oracle Connection 加密参数

关于Oracle Connection的数据安全,做了两方面研究。

1. Oracle Connection中的用户/密码,都是默认通过session id为key, 做AES加密的。

2. 关于Connection中传输的数据,只需要加入一下加密参数,oracle服务器和客户端之间的数据就会加密。

            props.setProperty("oracle.net.encryption_client", "REQUIRED");
            props.setProperty("oracle.net.encryption_types_client", "(AES256,AES192,AES128)");

 

本文主要是记录#2点数据加密的测试。

 

以下是测试代码

import java.sql.*;
import java.util.Properties;


public class SSLConnectionTest {

    public static void main(String[] args){
        test();
    }

    private static void test(){
        ResultSet rs = null;
        Statement stmt = null;
        Connection conn = null;
        String sql = null;

        try {
            String url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=orcl)))";
            Properties props = new Properties();
            props.setProperty("user", "c##test");
            props.setProperty("password", "123456");
            props.setProperty("oracle.net.encryption_client", "REQUIRED");
            props.setProperty("oracle.net.encryption_types_client", "(AES256,AES192,AES128)");
            conn = DriverManager.getConnection(url, props);

            System.out.println("=======================================");

            stmt = conn.createStatement();
            sql = "select * from MYTABLE";


//            sql = "select sys_context('userenv', 'network_protocol') as network_protocol from dual";
            rs = stmt.executeQuery(sql);
            while (rs.next()){
                String name = rs.getString("name");
                System.out.println("name:" + name);
                System.out.println();
            }
            rs.close();



        } catch (Exception ex){
            ex.printStackTrace();
        } finally {
            try {
                if (rs != null){
                    rs.close();
                    rs = null;
                }
                if (stmt != null){
                    stmt.close();
                    stmt = null;
                }
                if (conn != null){
                    conn.close();
                    conn = null;
                }


            } catch (Exception ex){
                ex.printStackTrace();
            }
        }

    }
}

 

未加参数之前

 

加了参数之后

 

转载于:https://www.cnblogs.com/bigbigwood/p/10809319.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值