基于UDF的Firebird数据库的加密实现.doc_第1页
基于UDF的Firebird数据库的加密实现.doc_第2页
基于UDF的Firebird数据库的加密实现.doc_第3页
基于UDF的Firebird数据库的加密实现.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息技术研究基于 UD F的 Firebird数据库的加密实现师洪(玉溪师范学院 信息工程技术学院 ,云南 玉溪 65 31 00 )关键词 F ireb ird;数据库加密 ; UD F;触发器摘 要 在 F ireb ird数据库中 ,利用 UD F函数库可以在数据库端实现数据加密存储 ,该加密方 案控制灵活 ,性能高效 ,安全保密性高 ,对开发人员透明 . 经实际使用测试 ,该方案完全可以满足 应用系统中数据加密的需要 .作者简介 师中图分类号 洪 ,讲师 ,主要从事计算机软件及数据库技术研究和应用.TP 311. 21 文献标识码 A 文章编号 100 9 - 950 6 ( 200 9 ) 08 - 0 056 - 0 4对数据库中的数据进行加密 ,主要有三个层次 : O S系统层加密 、客户层加密 、服务器端加密. O S系统层通常无法识别数据库中的数据关系 ,从而无法产生合理的密钥 ,因此很难实现对大型数据库的加密管 理 ;客户层加密虽然不增加数据库服务器的负载 ,但是加密功能会受到一些限制 ,而且与数据库管理系统 之间的耦合性较差 ;而服务器端加密实现 ,其功能较强 ,又几乎不会影响数据库管理系统功能 ,并且可以实 现加密过程与数据库系统之间的无缝衔接 . 采用服务器端加密通常需要对数据库管理系统本身进行操作 , 一般情况下 ,如果没有数据库开发商的技术支持 ,其实现难度相对较大 ,而 F ireb ird 数据库系统由于其提 供了可定制的用户定义函数 UD F,因此通过定制 UD F就可以在数据库服务端实现数据加密操作.1 数据加密实现本文基于 UD F来实现 F ireb ird数据库数据的加密 ,实验系统环境及开发平台为 : ( 1 ) W indow s XP操作系统 ; ( 2 ) F ireb ird数据库服务器 1. 5. 5; ( 3 ) D e lp h i7. 0 开发平台 . 其过程为 :首先开发基于某种加密算法的 UD F函数库 ,然后在 F ireb ird数据库中进行函数的使用声明 ,并对数据库进行编程开发配置 ,保证数据记 录添加修改时能够自动加密或人工加密.1. 1 开发加密 UD FW indow s平台下开发用户定义函数库是非常方便的 ,可以用 C、VC或者 D e lp h i等开发语言来完成. 本 文采用 D e lp h i7. 0来实现加密函数库的开发 .( 1 )新建一个 lib ra ry工程 ,并在单元文件里接口声明部分声明加密解密函数 :in te rfacecon stXo rKey: a rray 0. . 7 of B yte = ( B 7 , A9 , AC , 59 , 93 , 6D , 84 , 47 ) ;func tion Enc ryp tStr ( Str: String) : String;va ri, j: In tege r;beginR e su lt : = ;j : = 0;fo r i : = 1 to L ength ( Str) do beginR e su lt : = R e su lt + In tToH ex (B yte ( Str i )j : = ( j + 1 ) mod 8;end;end;func tion D ec ryp tStr ( Str: String) : String;va ri, j: In tege r;beginR e su lt : = ;j : = 0;fo r i : = 1 to L ength ( Str) d iv 2 do beginxo r Xo rKey j , 2 ) ;R e su lt : = R e su lt + Cha r ( StrTo In t ( + Cop y ( Str, i3 2 - 1 , 2 ) )j : = ( j + 1 ) mod 8;end;end;func tion f_enc ryp t ( str: Pcha r) : Pcha r;beginR e su lt : = Pcha r ( Enc ryp tStr ( str) ) ;end;func tion f_dec ryp t ( str: Pcha r) : Pcha r;beginR e su lt : = Pcha r (D ec ryp tStr ( str) ) ; End;xo r Xo rKey j ) ;加密解密算法可以根据需要采用各种标准的高强度加解密函数来实现 ,如 D ES, A ES, R SA , MD5 等 ,也可自定义加解密算法函数来实现 .( 3 )在加密解密函数实现之后 ,还需 lib ra ry工程文件中进行函数的导出 :expo rtsf_enc ryp t, f_dec ryp t;最后即可编译生成动态链接库 udf_enc ryp t. d ll,该动态连接库就是用于实现加密解密过程的 F ireb irdUD F函数库.1. 2 在数据库中声明 UD F要在数据库中使用 UD F函数库内的加解密函数 ,必须在数据库中进行函数的声明. 以下是上面编写 的加解密函数的一种声明形式 :D ECLAR E EXTERNAL FUNCT ION F_ENCR YPT CSTR IN G ( 50 )R ETURN S CSTR IN G ( 50 ) FR EE_ ITEN TR Y_PO IN T f_enc ryp tMODUL E_NAM E udf_enc ryp t. d ll;D ECLAR E EXTERNAL FUNCT ION F_D ECR YPTCSTR IN G ( 50 )R ETURN S CSTR IN G ( 50 ) FR EE_ ITEN TR Y_PO IN T f_dec ryp tMODUL E_NAM E udf_enc ryp t. d ll;函数声明部分的返回参数有一个关键字 FR EE_ IT,它可以让函数参数所占用的内存正常释放 ,保证系 统不发生内存泄漏和线程安全性问题.1. 3 实现数据的加密数据库应用系统在进行数据操作时 ,为了使数据的加密过程对用户是透明的 ,则可以在 F ireb ird数据 库端利用触发器机制来保证数据添加 、修改后的自动加密. 采用这种技术处理后可避免应用系统在开发过 程中进行数据加密操作的附加编码工作 ,使系统的数据加密控制变得和普通开发是完全一样 ,从而降低了 系统开发的复杂性 .打开 F ireb ird数据库 ,新建实现数据加密控制的触发器 ,用于在添加 、修改相应数据时进行自动加密.举例触发器代码如下 :c rea te o r a lte r trigge r tr_pwd_enc ryp t01 fo r t_ jingcha ac tive befo re in se rt po sition 0a s beginif ( new. p a ss_wo rd is no t nu ll) thennew. p a ss_wo rd = f_enc ryp t ( new. p a ss_wo rd) ;endc rea te o r a lte r trigge r tr_pwd_enc ryp t02 fo r t_ jingchaac tive befo re up da te po sition 0 a sbeginif ( ( new. p a ss_wo rd is no t nu ll) and ( o ld. p a ss_wo rd new. p a ss_wo rd = f_enc ryp t ( new. p a ss_wo rd) ; new. p a ss_wo rd) ) then1. 4 使用测试在实际数据测试时 ,由于已通过触发器来完成数据的加密控制 ,所以测试数据的添加修改加密非常简 单 ,与平时数据的添加修改操作完全一样 ,可以直接在相应的数据集中直接进行操作 ,也可以通过 SQL 语 句进行操作 ,本文以 SQL 举例如下 :添加数据操作 :in se rt in to t_ jingcha ( id, p a ss_wo rd) va lue s ( 000009 , qwe123 ) ;修改数据操作 :up da te t_ jingcha se t p a ss_wo rd = 99 ) 088 whe re id = 000111 ;经测试 ,在这两种数据的变更操作后 ,数据表字段中的相应数据已经完成了加密 ,由此可看出这种加 密操作实现起来非常简单可靠 ,在进行系统开发时也可免去加密控制开发的考虑.在进行数据查询时 ,只需要使用解密 UD F函数对查询的加密数据字段进行解密操作 ,就可以完成数 据的还原 . 代码如下 :se lec t id, f_dec ryp t ( p a ss_wo rd) from t_ jingcha whe re p a ss_wo rd = qwe123 可以看出 ,只需要把加密查询字段用自己定制的 UD F进行函数操作 ,就可用标准的 SQL 语句完成所 需要的数据查询操作 .2 结束语信息安全的核心就是数据库的安全 ,而数据库数据的加密是信息安全要解决的核心问题 ,使用数据库加密技术将极大的解决数据库信息存在的安全隐患. 在 F ireb ird数据库中 ,利用 UD F函数库可以在数据库 端实现数据加密存储 ,该加密方案控制灵活 ,性能高效 ,安全保密性高 ,对开发人员透明 ,经实际使用测试 , 完全可以满足应用系统中数据加密的需要 .参考文献 : 1 任颂华 . 基于 In te rba se的数据库开发 M . 北京 :电子工业出版社 , 2004. 2 M a rco Can tu. D e lp h i4从入门到精通 M . 北京 :电子工业出版社 , 1999. 3 邹建 . 中文版 SQL Se rve r 2000开发与管理应用实例 M . 北京 :人民邮电出版社 , 2005.UD F - B a sed Enc ryp tion of the F ireb ird D a taba seSH I Hong( Schoo l of Info rm a tion Techno logy and Enginee ring, Yuxi No rm a l U n ive rsity, Yuxi, Yunnan 653100)Key W ord s: F ireb ird; da taba se enc ryp tion; UD F; trigge rA b stra c t: The info rm a tion sto rage enc ryp tion in the F ireb ird da taba se is rea lized w ith

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论