关于ORACLE数据传输加密的介绍

Oracle数据库的高级安全选项提供了传输数据加密、数据完整性验证等多项功能,在一定程度上可以保证数据传输的安全性。

连接到ORACLE数据库方式有两种,一种是通过sqlnet.ora文件,另一种是通过JDBC方式。

为了使用Oracle的高级安全选项,对此功能进行了简单测试:

功能方面:无论是利用sqlnet.ora还是通过JDBC连接到ORACLE数据库,这两种方式都可以进行实现数据加密。

性能方面:不加密情况下执行时间较短、数据包个数相对较少且CPU空闲率相对较高。使用RC4_40和RC_4_56的加密算法对性能影响较小,CPU使用率和执行时

间增加不超过1%。使用DES40C和DES56C对系统性能影响不超过2%。

高频调用测试:我们利用loadrunner模拟10个客户端进行同时调用,不加密时CPU的占用率要比使用加密算法时CPU的占用率低2-3%左右。对于本次测试,使用RC4_40和RC4_56算法比使用DES40和DES50算法节省大约10秒左右。

通过测试我们可以看出传输的数据进行加密会对系统性能产生一定的影响,但这种影响不是很大。通过对比几种加密算法,我们可以看出RC系列算法明显好于DES系列算法。而在某些DML语句上面RC4_40的性能比RC4_56表现更好。

因此,这里我们建议使用RC_40算法对通过传输的数据进行加密。

设置传输加密在服务器端是通过设置sqlnet.ora文件实现的。此文件可以动态修改,也就是说可以在数据库运行时直接打开此文件,加入下面代码随即生效:

SQLNET.ENCRYPTION_TYPES_SERVER= (RC4_40)

SQLNET.ENCRYPTION_SERVER = accepted

SQLNET.CRYPTO_SEED = # 加密种子

通过sqlnet.ora文件连接到ORACLE数据库的在客户端也有这个文件。设置也是可以动态修改的,加入下面代码随即生效:

SQLNET.ENCRYPTION_TYPES_SERVER= (RC4_40)

SQLNET.ENCRYPTION_SERVER = requested

SQLNET.CRYPTO_SEED = # 加密种子

通过JDBC连接到数据库的方式,需要在加密的网页中加入下面的代码:

<%@ page session="false" %>

<%@ page import="java.sql.*" %>

<%@ page import="java.io.*" %>

<%@ page import="java.util.*" %>

<%@ page import="oracle.net.ns.*" %>

<%@ page import="oracle.net.ano.*" %>

Properties prop = new Properties();

prop.put("user","test");

prop.put("password","test");

prop.put("oracle.net.encryption_client", "REQUESTED");

prop.put("oracle.net.encryption_types_client", "(RC4_40)");

――无需设置加密种子。

上面的加密代码加到每一个利用JDBC连接到数据库的网页中随即生效 。

 

转载于:https://my.oschina.net/u/3635497/blog/2980456

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值