一种数据库身份验证方法及系统技术方案

技术编号:10696272 阅读:301 留言:0更新日期:2014-11-26 23:51
本申请提供了数据库身份验证方法及系统,口令生成端当接收到应用程序的数据库访问指令时,生成与所述应用程序对应的第一动态口令,并将所述第一动态口令发送至口令验证端,口令验证端当接收到应用程序对应的第一动态口令时,生成第二动态口令,并比对所述第一动态口令与所述第二动态口令是否一致,当比对一致时,将数据库的账号及密码返回至应用程序,口令生成端触发应用程序依据该账号及密码创建与数据库的连接,以使数据库对该连接进行身份验证。与现有技术中直接将数据库账号及密码存储在配置文件相比,本申请通过动态口令验证的方式才能获得数据库账号及密码,提高了数据库的访问安全性。

【技术实现步骤摘要】
一种数据库身份验证方法及系统
本申请涉及数据库
,尤其是一种数据库身份验证方法及系统。
技术介绍
数据库,是按照一定的数据结构存储并管理数据的技术,其具有共享性高及与应用程序独立等优点,广泛应用于对各种业务数据的处理过程中。其中,为了提高业务数据的安全性,对访问数据库的应用程序进行身份验证至关重要。具体地,当应用程序访问数据库时,需要录入数据库的账户与密码,当录入的账户与密码与数据库中存储的账户与密码完全相同时,允许此次访问,否则,拒绝访问。目前,数据库的身份验证方法是,应用程序调用存储在本地配置文件中的数据库账户及密码,并依据该账户及密码向数据库进行访问身份验证。该种方法,由于本地配置文件的易读取性,导致数据库的账户及密码易被非法获取,从而降低数据库的安全性。
技术实现思路
有鉴于此,本申请提供了一种数据库身份验证方法及系统,用以解决现有技术的身份验证方法导致数据库的账户及密码易被非法获取,从而降低数据库的安全性的技术问题。为实现所述专利技术目的,本专利技术提供的技术方案如下:一种数据库身份验证方法,包括:当接收到应用程序的数据库访问指令时,生成与所述应用程序对应的第一动态口令;将所述第一动态口令发送至口令验证端,触发所述口令验证端生成第二动态口令并比对所述第一动态口令与所述第二动态口令是否一致,并触发所述口令验证端当比对一致时,将数据库的账号及密码返回至所述应用程序;触发所述应用程序依据所述账号及密码创建与数据库的连接,使所述数据库对所述连接进行验证。上述验证方法,优选地,所述生成与所述应用程序对应的第一动态口令包括:获取与所述应用程序对应的公开密钥及预设动态因子的值;其中,所述预设动态因子包括时间;将所述公开密钥及所述预设动态因子的值顺序连接为第一字符串,并依据预设加密算法,将所述第一字符串加密为第二字符串;将所述第二字符串转化生成第一动态口令。上述验证方法,优选地,所述将所述第二字符串转化生成第一动态口令,包括:将所述第二字符串转换为第一字节数组;依据预设动态口令位数,将所述第一字节数组等分为多个第二字节数组;其中,每个所述第二字节数组的长度均与所述预设动态口令位数相同;将各个所述第二字节数组中相同位置的元素进行逻辑运算,获得第三字节数组,并提取所述第三字节数组的每个字节元素中的一位二进制值,生成第一动态口令。上述验证方法,优选地,所述公开密钥为应用程序的项目名称加密后生成的字符串;所述预设动态因子还包括:应用程序的项目编号和/或应用程序的运行次数;且所述预设动态因子中时间的精度为分。本申请还提供了一种数据库身份验证方法,包括:当接收到应用程序对应的第一动态口令时,生成第二动态口令;比对所述第一动态口令与所述第二动态口令是否一致;当比对一致时,将数据库的账号及密码返回至所述应用程序,触发所述应用程序依据所述账号及密码创建与数据库的连接,使所述数据库对所述连接进行验证。上述验证方法,优选地,还包括:依据第一预设时间间隔,定时生成第三动态口令;其中,所述第一预设时间间隔的精度为周或月;每当生成所述第三动态口令后,将所述数据库的密码更新为所述生成的第三动态口令。上述验证方法,优选地,所述当接收到应用程序对应的第一动态口令时,生成第二动态口令,包括:当接收到应用程序对应的第一动态口令时,获取当前时间点;依据第二预设时间间隔,分别生成当前时间点及上一时间点各自对应的第二动态口令;相应地,所述比对所述第一动态口令与所述第二动态口令是否一致,包括:比对所述第一动态口令与所述当前时间点对应的第二动态口令或上一时间点对应的第二动态口令是否一致。上述验证方法,优选地,还包括:加密存储所述第三动态口令。本申请还提供了一种数据库身份验证系统,包括:口令生成端,用于当接收到应用程序的数据库访问指令时,生成与所述应用程序对应的第一动态口令,并将所述第一动态口令发送至口令验证端;口令验证端,用于当接收到应用程序对应的第一动态口令时,生成第二动态口令,并比对所述第一动态口令与所述第二动态口令是否一致,当比对一致时,将数据库的账号及密码返回至所述应用程序;所述口令生成端,还用于触发所述应用程序依据所述账号及密码创建与数据库的连接,使所述数据库对所述连接进行验证。上述验证系统,优选地,所述口令验证端还用于依据第一预设时间间隔,定时生成第三动态口令,且每当生成所述第三动态口令后,将所述数据库的密码更新为所述生成的第三动态口令;其中,所述第一预设时间间隔的精度为周或月。与现有技术相比,本申请具有如下有益效果:本申请提供的技术方案中,口令生成端当接收到应用程序的数据库访问指令时,生成与所述应用程序对应的第一动态口令,并将所述第一动态口令发送至口令验证端,口令验证端当接收到应用程序对应的第一动态口令时,生成第二动态口令,并比对所述第一动态口令与所述第二动态口令是否一致,当比对一致时,将数据库的账号及密码返回至应用程序,口令生成端触发应用程序依据该账号及密码创建与数据库的连接,以使数据库对该连接进行身份验证。与现有技术中直接将数据库账号及密码存储在配置文件相比,本申请通过动态口令验证的方式才能获得数据库账号及密码,提高了数据库的访问安全性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例提供的口令生成端数据库身份验证方法的流程图;图2为本专利技术实施例提供的口令生成端数据库身份验证方法中生成第一动态口令的流程图;图3为本专利技术实施例提供的口令验证端端数据库身份验证方法的流程图;图4为本专利技术实施例提供的口令验证端数据库身份验证方法的另一流程图;图5为本专利技术实施例提供的数据库身份验证系统的结构图;图6为本专利技术实施例提供的数据库身份验证系统结构及方法流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参见图1,其示出了本专利技术实施例提供的数据库身份验证方法的流程,具体包括:步骤S101:当接收到应用程序的数据库访问指令时,生成与所述应用程序对应的第一动态口令。其中,应用程序需要访问数据库中的业务数据时,生成数据库访问指令,并将该指令发送至本实施例对应的模块,即口令生成端。其中,口令验证端可以是动态链接库,动态链接库中包含生成动态口令的算法。需要说明的是,动态口令是利用动态口令算法生成的。由于动态口令算法生成动态口令的过程中需要对参数进行加密,参数与进行数据库访问的应用程序相对应,也就是说,每一应用程序具有对应的参数,当接收到到一应用程序的数据库访问指令时,获取与该应用程序对应的参数,从而使得对参数加密生成的第一动态口令具有唯一性。步骤S102:将所述第一动态口令发送至口令验证端,触发所述口令验证端生成第二动态口令并比对所述第一动态口令与所述第二动态口令是否一致,并触发所述口令验证端当比对一致时本文档来自技高网...

【技术保护点】
一种数据库身份验证方法,其特征在于,包括:当接收到应用程序的数据库访问指令时,生成与所述应用程序对应的第一动态口令;将所述第一动态口令发送至口令验证端,触发所述口令验证端生成第二动态口令并比对所述第一动态口令与所述第二动态口令是否一致,并触发所述口令验证端当比对一致时,将数据库的账号及密码返回至所述应用程序;触发所述应用程序依据所述账号及密码创建与数据库的连接,使所述数据库对所述连接进行验证。

【技术特征摘要】
1.一种数据库身份验证方法,其特征在于,包括:当接收到应用程序的数据库访问指令时,生成与所述应用程序对应的第一动态口令;将所述第一动态口令发送至口令验证端,触发所述口令验证端生成第二动态口令并比对所述第一动态口令与所述第二动态口令是否一致,并触发所述口令验证端当比对一致时,将数据库的账号及密码返回至所述应用程序;触发所述应用程序依据所述账号及密码创建与数据库的连接,使所述数据库对所述连接进行验证;其中所述生成与所述应用程序对应的第一动态口令包括:获取与所述应用程序对应的公开密钥及预设动态因子的值;其中,所述预设动态因子包括时间;将所述公开密钥及所述预设动态因子的值顺序连接为第一字符串,并依据预设加密算法,将所述第一字符串加密为第二字符串;将所述第二字符串转换为第一字节数组;依据预设动态口令位数,将所述第一字节数组等分为多个第二字节数组;其中,每个所述第二字节数组的长度均与所述预设动态口令位数相同;将各个所述第二字节数组中相同位置的元素进行逻辑运算,获得第三字节数组,并提取所述第三字节数组的每个字节元素中的一位二进制值,生成第一动态口令。2.根据权利要求1所述的验证方法,其特征在于,所述公开密钥为应用程序的项目名称加密后生成的字符串;所述预设动态因子还包括:应用程序的项目编号和/或应用程序的运行次数;且所述预设动态因子中时间的精度为分。3.一种数据库身份验证方法,其特征在于,包括:当接收到应用程序对应的第一动态口令时,生成第二动态口令;比对所述第一动态口令与所述第二动态口令是否一致;当比对一致时,将数据库的账号及密码返回至所述应用程序,触发所述应用程序依据所述账号及密码创建与数据库的连接,使所述数据库对所述连接进行验证;其中所述第二动态口令的生成方式包括:获取与所述应用程序对应的公开密钥及预设动态因子的值;其中,所述预设动态因子包括时间;将所述公开密钥及所述预设动态因子的值顺序连接为第一字符串,并依据预设加密算法,将所述第一字符串加密为第二字符串;将所述第二字符串转换为第一字节数组;依据预设动态口令位数,将所述第一字节数组等分为多个第二字节数组;其中,每个所述第二字节数组的长度均与所述预设动态口令位数相同;将各个所述第二字节数组中相同位置的元素进行逻辑运算,获得第三字节数组,并提取所述第三字节数组的每个字节元素中的一位二进制值,生...

【专利技术属性】
技术研发人员:丁瑞琦赵亮陆铮贺耀宜汪丛笑张卫国陈小林王启峰赵立厂闫兆振奚冬芹戴雨林兴旺安新亮
申请(专利权)人:天地常州自动化股份有限公司中煤科工集团常州研究院有限公司
类型:发明
国别省市:江苏;32

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

1