实验 四:Oracle 11g数据库加密及代码混淆

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四:Oracle 11g数据库加密及代码混淆

实验学时:2

实验类型:综合

实验要求:必修

一、实验目的

该实验主要是使学生学会在数据库中如何进行加密、解密以及计算hash、MAC。通过该实验的学习,是学生深入了解数据库中数据加密的目的、准则;掌握数据库加密、解密算法以及密钥的产生和存储,hash算法以及MAC。

二、实验内容

Oracle 11g数据库加、解密,hash以及MAC值计算;oracle 中的代码混淆

三、实验原理、方法和手段

1.数据库加密、解密(保证机密性)。

利用oracle 11g 中PL/SQL 包DBMS_CRYPTO 进行数据的加、解密。

利用这两个函数dbms_crypto.Encrypt和dbms_crypto.Decrypt

●Data Encryption Standard (DES), Triple DES (3DES, 2-key)

●Advanced Encryption Standard (AES)(128、192、256)

2.hash 和MAC 值的计算(保证完整性)

利用oracle 11g 中PL/SQL 包DBMS_CRYPTO 进行。

采用DBMS_CRYPTO.Hash和 DBMS_CRYPTO.Mac进行。

●SHA-1 Cryptographic Hash

●SHA-1 Message Authentication Code (MAC)(Usage of SHA-1 is more

secure than MD5)

3.oracle中代码混淆

参见oracle官方文档《PL/SQL User's Guide and Reference》,利用wrap utility对代码进行混淆。

四、实验组织运行要求

根据本实验的特点,采用以学生自主训练为主的开放模式组织教学。

五、实验条件

硬件:CPU:2.4G 内存:1G 硬盘:80G

软件:Windows 2003、WinXP、Win7 及以上操作系统 ,Oracle 11g数据库

六、实验步骤

1.请写一段PL/SQL代码实现在oracle中加密自己的学号,并将密文输出。请使用DBMS_CRYPTO 中:ENCRYPT_AES192、CHAIN_ECB 和PAD_PKCS5,并使用RANDOMBYTES函数产生密钥。

2.请写一段PL/SQL代码实现在oracle中计算出自己姓名全拼的MAC(SHA-1)并输出。

3. Please use wrap utility to obfuscate the below code PL/SQL code and the first PL/SQL code you encrypt your student ID in oracle and give the results. Then please compare and analyze the above two results. You can refer to the doc of 《PL/SQL User's Guide and Reference》.

create or replace function CHECK_SID

(s_id in number)

return number

as

num number;

cursor get_num

is

select count(sid)

from s

where sid=s_id;

begin

open get_num;

fetch get_num into num;

return num;

end CHECK_SID;

七、思考题

1.什么是代码混淆?代码混淆的目的。

2.数据库中加密的目的和原则是什么?

3.在oracle中TDE的工作原理是什么?

相关文档
最新文档