网站首页 > 文章中心 > 其它

oracle如何加密

作者:小编 更新时间:2023-09-10 10:56:49 浏览量:39人看过

如何利用Oracle自带的MD5对数据进行加密

IS

BEGIN

RETURN retval;

END;

create or replace function

oracle如何加密-图1

begin

raw_input := UTL_RAW.CAST_TO_RAW(v_text);

key_input := UTL_RAW.CAST_TO_RAW(p_key);

dbms_obfuscation_toolkit.DESEncrypt(input = raw_input,key = key_input,encrypted_data =decrypted_raw);

v_enc := rawtohex(decrypted_raw);

dbms_output.put_line(v_enc);

oracle如何加密-图2

return v_enc;

end;

DES加密:

v_text := rtrim(v_text,chr(0));

dbms_output.put_line(v_text);

return v_text;

如何在oracle 10g r2中实现透明数据加密

设置加密密钥:

Oracle 透明数据加密提供了实施加密所必需的关键管理基础架构. 加密的工作原理是将明文数据以及秘密(称作密钥)传递到加密程序中. 加密程序使用提供的密钥对明文数据进行加密,然后返回加密数据. 以往,创建和维护密钥的任务由应用程序完成. Oracle 透明数据加密通过为整个数据库自动生成一个万能密钥解决了此问题. 在启动 Oracle 数据库时,管理员必须使用不同于系统口令或 DBA 口令的口令打开一个 Oracle Wallet 对象. 然后,管理员对数据库万能密钥进行初始化. 万能密钥是自动生成的.

性能:

由于索引数据未被加密,所以呢加密通常会影响现有的应用程序索引. Oracle 透明数据加密对与给定应用程序表关联的索引值进行加密. 这意味着应用程序中的相等搜索对性能的影响很小,甚至没有任何影响. 例如,假设应用程序 card_id存在一个索引,并且此应用程序执行以下语句:

Oracle 数据库将使用现有的应用程序索引,尽管 card_id信息已经在数据库中加密.

准备用于加密的数据库:

① 您需要更新 sqlnet.ora 文件以包含一个 ENCRYPTED_WALLET_LOCATION 条目.打开一个终端窗口,然后输入以下命令:

cd $ORACLE_HOME/network/admin

gedit sqlnet.ora

将以下条目添加到文件末尾:

如果不加这一项的话,则会提示下面错误:

SQL alter system set key identified by "hurray"

alter system set key identified by "hurray"

*

ERROR at line 1:

可以为加密钱夹选择任何目录,但路径不应指向在数据库安装过程中创建的标准模糊钱夹(cwallet.sso).

connect / as sysdbaalter system set key identified by "welcome1";

此命令的作用为:

l 如果指定目录中存在加密钱夹,则将打开此钱夹并创建/重新创建 TDE 的万能密钥.

之后,就可以测试数据了.

下面是实验记录:

alter system set key identified by "welcome1";

①. row created.

SQL commit;

Commit complete.

SQL select * from test;

ID CREDIT_CARD_NUMB

---------- ----------------

可见,数据查看是明文,因为这个时候,加密钱夹已经打开,数据可以解密.

这时,停止数据库,再打开:

SQL shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL SQL startup

ORACLE instance started.

Database mounted.

Database opened.

SQL select * from dodd.test;

select * from dodd.test

SQL select id from dodd.test;

ID

----------

①.

可以看到,因为数据库重启后,加密钱夹处于关闭状态,这时只要查询到加密的列,会提示加密钱夹没有打开.

如果用户想打开钱夹,必须具有alter system权限.

下面打开wallet:

SQL conn / as sysdba

Connected.

SQL alter system set wallet open identified by "welcome1";

System altered.

可以看到,加密钱夹打开后,数据可以被解密.

还有一条:sys用户的表不能被加密.

可见:Oracle TDE是在数据层面上对表里的数据加密,而且不会影响数据库现有的权限控制策略.

salt实际上就是在加密过程中引入一个随机性.简单的说,就是一般来说,同样的明文产生同样的密文,这样就导致容易被解密者通过分析词频之类的方式(加解密我不太懂)来通过密文破解明文,如果指定salt,那么即使同样的明文加密后的密文也是不一样的.

no salt的话,自然就是相同的明文会产生相同的密文了.对于索引来说,要求no salt也就可以理解了

丢失ewallet加密钱夹的话,是不能再解密数据的.

Oracle如何加密视图源码?

最简单的,把sys收了,异用户查询授权.

要是涉及到代码移交,那就用函数实现view,然后用DBMS_DDL.WRAP加密

如何对Oracle中的PL/SQL源码进行加密

可以使用wrap 工具或者DBMS_DDL子程序对PL/SQL源码进行加密.wrap工具加密单个源文件,如SQL*Plus脚本.DBMS_DDL子程序加密单个动态生成的PL/SQL单元,如一个CREATE PROCEDURE声明.加密的源文件可以移动,备份,可被SQL*Plus和Improt和Export工具处理,但在静态数据字典视图*_SOURCE中无法看到源码. WRAP语法 wrap iname=input_file [oname=output_file ] 可省略文件扩展名,如以下的命令是等同的: wrap iname=/mydir/myfile wrap iname=/mydir/myfile.sql 输出文件默认的扩展名为.plb,当然你也可以指定不同的文件名和扩展名. wrap iname=/mydir/myfile oname=/yourdir/yourfile.out wrap主要是混淆PL/SQL语句的主体部分,如下CREATE语句可以被加密: CREATE [OR REPLACE] FUNCTION function_nameCREATE [OR REPLACE] PROCEDURE procedure_nameCREATE [OR REPLACE] PACKAGE package_nameCREATE [OR REPLACE] PACKAGE BODY package_nameCREATE [OR REPLACE] TYPE type_name AS OBJECTCREATE [OR REPLACE] TYPE type_name UNDER type_nameCREATE [OR REPLACE] TYPE BODY type_name CREATE [OR REPLACE] TRIGGER语句不能被加密,但你可调用加密的过程.加密文件中除了语句头部和C风格(/*...*/)注释外,其它所有注释被删除.

如何在Oracle SecureFiles中加密数据

用于加密非LOB字段的透明数据加密语法与在Oracle SecureFiles中启用加密的语法完全相同.它们有一个重要的区别,非LOB字段可以使用NO SALT参数阻止TDE在加密数据之前先给数据添加一个随机字符串.Oracle SecureFile LOB字段不支持NO SALT选项.我们可以使用数据字典视图USER_ENCRYPTED_COLUMNS确定应该加密哪一些字段,以及这些字段的状态.下面是一些ENCRYPT子句的例子:

LOB(col1) STORE AS SECUREFILE(

CACHE

NOLOGGING

);

CREATE TABLE tab_enc_pw (col1 CLOB ENCRYPT IDENTIFIED BY badpassword)

ALTER TABLE tab_nocrypt MODIFY

通过重新生成加密密钥修改一个Oracle SecureFiles字段:

Disable LOB encryption:

禁用LOB加密:

ALTER TABLE tab_enc_pw MODIFY

( col1 CLOB DECRYPT);

Oracle数据库中存储的大对象数据容量会继续增长,但是存储费用在不断下降.其中有许多的敏感数据,如医疗记录、员工数据和知识产权.能够对这些信息进行加密,这是非常宝贵的,也可以避免在将来投入大量金钱和精力去实现安全性.

以上就是土嘎嘎小编为大家整理的oracle如何加密相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章