实验 四:Oracle 11g数据库加密及代码混淆
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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的工作原理是什么?