实现自主可控数据库自定义函数加密的方法技术

技术编号:15437823 阅读:55 留言:0更新日期:2017-05-26 03:49
本发明专利技术实施例提供了一种实现自主可控数据库自定义函数加密的方法,包括:步骤1、获取自定义函数的函数体代码;将所述将自定义函数的函数体转换成密文;步骤2、创建自定义函数语言模板;创建过程语言模板;生成密文的自定义函数;步骤3、对密文的自定义函数进行SQL解析,如果解析结果正确则对自定义函数进行编译,然后将编译后的自定义函数存储到pg_catalog.pg_proc文件中。

Method for implementing self controlled database self defining function encryption

Including the embodiment of the invention provides a method for realizing the independent controllable, database encryption function: Step 1, get the body of the function code custom function; the function of body custom functions into ciphertext; step 2, create a custom function template language; language template creation process; custom function to generate the ciphertext; step 3, the ciphertext custom function SQL parsing, if the analytical result is correct on the custom function compile, then compiled custom functions stored in pg_catalog.pg_proc files.

【技术实现步骤摘要】
实现自主可控数据库自定义函数加密的方法
本专利技术属于涉及数据库加密
,尤其涉及一种实现自主可控数据库自定义函数加密的方法。
技术介绍
随着社会的发展,越来越多的数据采用电子化形式存储;无论是生活、工作、学习都离不开信息系统的支撑。数据库系统作为信息化技术的核心,其安全性和可靠性直接影响到整个信息化系统。现有技术中为了提高信息化系统的安全性,通常都会对数据库内存储的数据进行加密。但是现有技术都忽略了一点:如果数据库的程序代码泄漏,则意味着整个应用系统也会面临挑战,从而带来严重的损失和后果。因此如何以技术手段保障数据库程序代码的安全已成为一个亟待解决的问题。作为示例性的,PostgreSQL是一宗典型的基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分SQL标准并且提供了许多其他现代特性。但是现有技术中的基于PostgreSQL的自主可控数据库不支持自定义函数加密,即基于PostgreSQL的自主可控数据库的自定义函数是以明文存储在系统表pg_catalog.pg_proc中,并且所有用户可读,这样为数据库系统的安全性埋下了一个重大隐患,无法保证数据库程序代码的安全。
技术实现思路
针对现有技术中不对数据库的程序代码进行加密导致整个数据库系统存在重大安全隐患的问题,本专利技术实施例的目的是提供一种有效且高效的实现自主可控数据库自定义函数加密的方法,能够对数据库的程序代码进行加密。为了解决上述问题,本专利技术实施例提出了一种实现自主可控数据库自定义函数加密的方法,包括:步骤1、获取自定义函数的函数体代码;将所述将自定义函数的函数体转换成密文;步骤2、创建自定义函数语言模板;创建过程语言模板;生成密文的自定义函数;步骤3、对密文的自定义函数进行SQL解析,如果解析结果正确则对自定义函数进行编译,然后将编译后的自定义函数存储到pg_catalog.pg_proc文件中。其中,所述步骤1中通过以下的一种加密算法对自定义函数的函数体进行加密:Unicode、ASCII、GBK、GB2312、UTF-8。其中,所述步骤1中对自定义函数的函数体采用流加密方式进行加密,所述流加密包括:一边解密一边编译,并在把编译完成后将相应部分删除。本专利技术的上述技术方案的有益效果如下:上述的技术方案提出了一种实现自主可控数据库自定义函数加密的方法,能够保证数据库业务代码的全生命周期安全,解决了涉密信息以明文形式存在的问题。附图说明图1是现有的自定义函数创建流程图;图2是的本专利技术实施例的自定义函数创建流程图;图3是自主可控数据库自定义函数加密创建流程图。具体实施方式为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。如图1所示的,现有技术中的生成自定义函数的流程包括:对自定义函数进行编辑,并对编辑后的自定义函数进行SQL解析,如果解析结果正确则对自定义函数进行编译,然后将编译后的自定义函数存储到pg_proc文件中;如果解析结果错误则输出错误提醒。本专利技术实施例采用加密算法对函数体进行加密,这样就无需修改数据库的内核,因此本专利技术实施例相比较现有的在创建函数时将函数转换为密文的加密方式,可以减少数据库升级时对内核进行修改的工作量。而本专利技术实施例的加密算法的设计思路是将函数体内所有的字母和符号顺序进行随机调换。具体的,本专利技术实施例可以采用多种主流的编码方式对函数体的程序代码,主要包括:Unicode、ASCII、GBK、GB2312、UTF-8等主流的编码方式。且加密时采用流加密,即一边解密一边编译,把编译过的部分清掉,以提高代码安全性。本专利技术实施例中,将被保护的业务信息系统称为目标程序,将被保护的人员称为目标用户。本专利技术实施例提出了一种如图2和图3所示的实现自主可控数据库自定义函数加密的方法,具体包括:步骤1、获取自定义函数的函数体代码;将所述将自定义函数的函数体转换成密文;步骤2、创建自定义函数语言模板;创建过程语言模板;生成密文的自定义函数;步骤3、对密文的自定义函数进行SQL解析,如果解析结果正确则对自定义函数进行编译,然后将编译后的自定义函数存储到pg_catalog.pg_proc文件中。其中,所述步骤1中通过以下的一种加密算法对自定义函数的函数体进行加密:Unicode、ASCII、GBK、GB2312、UTF-8。其中,所述步骤1中对自定义函数的函数体采用流加密方式进行加密,即一边解密一边编译,把编译过的部分清掉。具体的,本专利技术实施例的方法包括:1、将自定义函数转换成密文pl_powerdbsrcfile[outfile]srcfile里只包含函数体部分,输出加密后的密文。2、创建存储过程语言模板INSERTINTO3、创建过程语言CREATELANGUAGEplpgwrappedsql;创建函数CREATEFUNCTIONfunc_name()RETURNStypeAS$$<密文形式自定义函数>$$LANGUAGEplpgpowerdbsql;至此,自定义函数加密成功。本专利技术实施例采用加密算法对函数体进行加密,这样就无需修改数据库的内核,因此本专利技术实施例相比较现有的在创建函数时将函数转换为密文的加密方式,可以减少数据库升级时对内核进行修改的工作量。而本专利技术实施例的加密算法的设计思路是将函数体内所有的字母和符号顺序进行随机调换。具体的,本专利技术实施例可以采用多种主流的编码方式对函数体的程序代码,主要包括:Unicode、ASCII、GBK、GB2312、UTF-8等主流的编码方式。以提高代码安全性。以上所述是本专利技术的优选实施方式,应当指出,对于本
的普通技术人员来说,在不脱离本专利技术所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本专利技术的保护范围。本文档来自技高网
...
实现自主可控数据库自定义函数加密的方法

【技术保护点】
一种实现自主可控数据库自定义函数加密的方法,其特征在于,包括:步骤1、获取自定义函数的函数体代码;将所述将自定义函数的函数体转换成密文;步骤2、创建自定义函数语言模板;创建过程语言模板;生成密文的自定义函数;步骤3、对密文的自定义函数进行SQL解析,如果解析结果正确则对自定义函数进行编译,然后将编译后的自定义函数存储到pg_catalog.pg_proc文件中。

【技术特征摘要】
1.一种实现自主可控数据库自定义函数加密的方法,其特征在于,包括:步骤1、获取自定义函数的函数体代码;将所述将自定义函数的函数体转换成密文;步骤2、创建自定义函数语言模板;创建过程语言模板;生成密文的自定义函数;步骤3、对密文的自定义函数进行SQL解析,如果解析结果正确则对自定义函数进行编译,然后将编译后的自定义函数存储到pg_catalog.pg_proc文件中。2.根据权利要求...

【专利技术属性】
技术研发人员:边伟亮燕兴余缪燕杨利兵姚玮江樱裴旭斌吴双惠王胜文
申请(专利权)人:北京许继电气有限公司国网浙江省电力公司许继集团有限公司国家电网公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1