透明数据加密(Transparent Data Encryption)

TDE - 基于列的加密
由于有了Oracle的TDE-基于列的加密,你所要做的只是定义需要加密的列,Oracle将为包含加密列的表创建一个私密的安全加密密钥,然后采用你指定的加密算法加密指定列的明文数据。
 这个加密,不需要我们写特殊的代码,只要我们制定“需要加密的列”,当用户插入下一行数据的时候,数据库透明的加密数据然后存储加密后的数据。当用户读取数据时,数据库给我们自动解密,也不需要应用程序去修改任何代码。
 
1.保证数据库兼容版本高于10gSQL> show parameter compatible

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 11.2.0

2. 设定wallet的位置(在sqlnet.ora文件中写入如下内容,需要重启数据库才能生效):   指定 ENCRYPTION_WALLET_LOCATION 参数

[oracle@11g admin]$ cat sqlnet.ora

#SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES)
ENCRYPTION_WALLET_LOCATION =
(SOURCE=
(METHOD=file)
(METHOD_DATA=
(DIRECTORY=/home/oracle/wallet)))

3)在指定(DIRECTORY路径下建好wallet目录。 不然报:ORA-28368: cannot auto-create wallet

[oracle@11g ~]$ mkdir wallet

[oracle@11g wallet]$ pwd

/home/oracle/wallet

4)在wallet里面创建key

SQL> alter system set encryption key authenticated by "andy";

System altered.

5)创建一个表,对其中某列加密

SQL> create table andy.andy_tde(
id number(10) primary key,
col_tde varchar2(50) encrypt using 'AES192'
); 2 3 4

Table created.

说明:TDE支持的加密算法:

3DES168 AES128  AES192(默认)  AES256

SQL> set linesize 300
SQL> select * from dba_encrypted_columns;

OWNER TABLE_NAME COLUMN_NAME ENCRYPTION_ALG
------------------------------ ------------------------------ ------------------------------ ------------------
ANDY ANDY_TDE COL_TDE AES 192 bits key

SQL> insert into andy_tde values (1,'tde');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from andy_tde;

ID COL_TDE
---------- ---------------------------------
1 tde

6)如果关闭wallet,无法访问加密的数据:

SQL> alter system set wallet close identified by "andy";

System altered.

SQL> select * from andy_tde;
select * from andy_tde
*
ERROR at line 1:
ORA-28365: wallet is not open

7)重新打开wallet,才可以访问加密的数据

SQL> alter system set wallet open identified by "andy";

System altered.

SQL> select * from andy_tde;

ID COL_TDE
---------- ----------------------------
1 tde

数据库安全之TDE列加密的更多相关文章

  1. Oracle中对列加密的方法

    Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col ...

  2. DotNet加密方式解析--散列加密

    没时间扯淡类,赶紧上车吧. 在现代社会中,信息安全对于每一个人都是至关重要的,例如我们的银行账户安全.支付宝和微信账户安全.以及邮箱等等,说到信息安全,那就必须得提到加密技术,至于加密的一些相关概念, ...

  3. .NET加密方式解析--散列加密

    在现代社会中,信息安全对于每一个人都是至关重要的,例如我们的银行账户安全.支付宝和微信账户安全.以及邮箱等等,说到信息安全,那就必须得提到加密技术,至于加密的一些相关概念,在这里就不说了. 这一次将会 ...

  4. MD5和sha1加密算法--散列加密技术 MD5:128bit的大整数

    在很多电子商务和社区应用中,我们都要存放很多的客户的资料,其中包括了很多的隐私信息和客户不愿被别人看到的信息,当然好有客户执行各种操作的密码,此时就需要对客户的信息进行加密再存储,目前有两种比较好的加 ...

  5. KingbaseES 支持列加密

    KINGBASE 列加密支持 sm4 和 rc4 加密算法,具体算法在 initdb 时指定,默认是 sm4.要使用列加密,必须 shared_preload_libraries = 'sysencr ...

  6. C#、WinForm、ASP.NET - Md5散列加密

     MD5值概念解释: 转载自:http://free0007.iteye.com/blog/2047163 所 谓MD5,即"Message-Digest Algorithm 5(信息-摘要 ...

  7. hexSHA1散列加密解密(不可逆)

    1.maven引入codec和commons依赖: <dependency> <groupId>commons-codec</groupId> <artifa ...

  8. Oracle列加密

    加密函数 create or replace function encrypt_des(p_text varchar2, p_key varchar2) return varchar2 isv_tex ...

  9. php 单向散列加密

    1.加密文件 <?php //sha1_en.php header("content-type:text/html;charset=utf-8"); $str = " ...

随机推荐

  1. 关于c#流

     C#流的简单认识 前言 本篇文章简单总结了在C#编程中经常会用到的一些流.比如说FileStream.MemoryStream. BufferedStream. NetWorkStream. Str ...

  2. HTML总结1

    1.html基本结构 <html>  <head>   <title>我的第一个网页</title>  </head>  <body ...

  3. 手把手教你DIY一个春运迁徙图(一)

    换了新工作,也确定了我未来数据可视化的发展方向.新年第一篇博客,又逢春运,这篇技术文章就来交给大家如何做一个酷炫的迁徙图(支持移动哦).(求star 代码点这里) 迁徙图的制作思路分为静态的元素和变换 ...

  4. WARN TaskSetManager: Lost task 0.0 in stage 0.0 (TID 0, worker1): java.lang.ClassNotFoundException: com.spark.firstApp.HelloSpark$$anonfun$2

    进行如下设置,解决报错信息. val conf = new SparkConf().setAppName("helloSpark").setMaster("spark:/ ...

  5. 自己总结python用xlrd\xlwt读写excel

    1.首先安装xlrd\xlwt模块 xlrd模块下载地址: https://pypi.python.org/pypi/xlrd xlwt模块下载地址: https://pypi.python.org/ ...

  6. underscorejs-findWhere学习

    2.8 findWhere 2.8.1 语法: _.findWhere(list, predicate) 2.8.2 说明: 对list集合的每个对象依次与predicate对象进行匹配,匹配成功则立 ...

  7. w3wp异常

    相信做ASP.NET中大型Web应用的人都碰到过OutOfMemoryException这个异常,对于这个问题我研究了很久,在微软的技术文档上也了解过此问题出现的原因,说实话,到目前我仍然没有完美的解 ...

  8. CRM窗体中只读的控件不会引发Update事件

    在CRM的窗体设计时,如果把某一个控件设为只读了,仅管你在后台用代码修改了值,这个值也不会起任何作用,更不会提交到后台,触发Update事件!

  9. 如何去除 ckeditor 上传图片后在原码中留下的 style="width: 100%;height:100px"之类的代码呢?

    ckeditor编辑器在上传图片的时候,会神奇的加上一段诡异的代码: 这导致上传的小图也是被拉伸到100%,我根本就没有定义它,找来找去也找不到element.style,原来这是在system.cs ...

  10. xml中的特殊符号

    其实就是xml的特殊符号,因为它的配置就是xml,所以可以用下面这种写法转义 <          <     >          >      <>   < ...