掌桥专利:专业的专利平台
掌桥专利
首页

MySQL数据库弱密码检测方法和系统、电子设备及介质

文献发布时间:2024-05-31 01:29:11


MySQL数据库弱密码检测方法和系统、电子设备及介质

技术领域

本发明涉及数据库技术领域,尤其是一种MySQL数据库弱密码检测方法和系统、电子设备及介质。

背景技术

随着信息技术发展,各企业为方便管理大量数据都会选择将其存入数据库中,数据库的安全问题也随之受到重视起来。为了避免数据库用户密码泄露或破解,会对数据库进行定时巡检,排查数据库用户密码复杂度。但随着MySQL数据库版本的不断迭代,加密解密方式也在不断增加,以往单一解密扫描方式并不适用于新版本数据库,影响了MySQL数据库弱密码检测的效率和准确性。

术语解释:

MySQL:MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统)应用软件之一。

弱密码:弱密码(Weak passwords)即容易破译的密码,多为简单的数字组合、账号相同的数字组合、键盘上的临近键或常见姓名,例如“123456”、“abc123”、“Michael”等。终端设备出厂配置的通用密码等都属于弱密码范畴。

mysql_native_password:MySQL5.7版本前的默认加密插件。

caching_sha2_password:MySQL8.0版本后的默认加密插件。

密码盐值(Salt):在密码学中,是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”。通常情况下,当字段经过散列处理(如MD5),会生成一段散列值,而散列后的值一般是无法通过特定算法得到原始字段的。但是某些情况,比如一个大型的彩虹表,通过在表中搜索该MD5值,很有可能在极短的时间内找到该散列值对应的真实字段内容。加盐后的散列值,可以极大的降低由于用户数据被盗而带来的密码泄漏风险,即使通过彩虹表寻找到了散列后的数值所对应的原始内容,但是由于经过了加盐,插入的字符串扰乱了真正的密码,使得获得真实密码的概率大大降低。

SHA256算法:SHA256算法是一种常用的哈希函数,对于任意长度的消息,SHA256都会产生一个256位的哈希值,称作消息摘要。这个摘要相当于是个长度为32个字节的数组,通常有一个长度为64的十六进制字符串来表示,其中1个字节为8位,一个十六进制的字符的长度为4位。

发明内容

本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。

为此,本发明实施例的一个目的在于提供一种MySQL数据库弱密码检测方法,该方法提高了MySQL数据库弱密码检测的效率和准确性。

本发明实施例的另一个目的在于提供一种MySQL数据库弱密码检测系统。

为了达到上述技术目的,本发明实施例所采取的技术方案包括:

一方面,本发明实施例提供了一种MySQL数据库弱密码检测方法,包括以下步骤:

获取待检测MySQL数据库的数据存放文件,对所述数据存放文件进行解析得到数据库版本信息和用户密码数据;

获取预先构建的弱密码明文字典,并根据所述数据库版本信息确定所述待检测MySQL数据库的数据库版本;

当所述数据库版本为MySQL5.6版本或MySQL5.7版本,根据所述弱密码明文字典对所述用户密码数据进行字段匹配,并根据匹配结果判断所述用户密码数据是否为弱密码;

当所述数据库版本为MySQL8.0版本,根据所述用户密码数据生成用户密码摘要,并根据所述弱密码明文字典生成弱密码加密摘要,进而根据所述用户密码摘要和所述弱密码加密摘要判断所述用户密码数据是否为弱密码。

进一步地,在本发明的一个实施例中,所述获取待检测MySQL数据库的数据存放文件,对所述数据存放文件进行解析得到数据库版本信息和用户密码数据这一步骤,其具体包括:

通过预设的可移植采集程序获取所述待检测MySQL数据库的所述数据存放文件;

解析所述数据存放文件,得到所述数据库版本信息和所述用户密码数据,并确定所述用户密码数据的密码字段和身份验证字段。

进一步地,在本发明的一个实施例中,所述MySQL数据库弱密码检测方法还包括预先构建所述弱密码明文字典的步骤,其具体包括:

获取已公开的密码复杂程度低的多个第一弱密码,并生成对应的多个第一弱密码明文;

根据所述第一弱密码明文构建所述弱密码明文字典,并初始化各所述第一弱密码明文的检测命中次数。

进一步地,在本发明的一个实施例中,所述根据所述弱密码明文字典对所述用户密码数据进行字段匹配,并根据匹配结果判断所述用户密码数据是否为弱密码这一步骤,其具体包括:

根据所述检测命中次数倒序检索所述弱密码明文字典,依次得到多个所述第一弱密码明文;

通过预设的MySQL内置函数对所述第一弱密码明文进行加密生成弱密码加密字符串;

将所述密码字段和所述身份验证字段分别与所述弱密码加密字符串进行字段匹配;

当所述密码字段和/或所述身份验证字段与所述弱密码加密字符串匹配一致,确定所述用户密码数据为弱密码,并更新对应的所述第一弱密码明文的检测命中次数;

当所述密码字段和所述身份验证字段均与所述弱密码加密字符串匹配不一致,确定所述用户密码数据不为弱密码。

进一步地,在本发明的一个实施例中,所述根据所述用户密码数据生成用户密码摘要,并根据所述弱密码明文字典生成弱密码加密摘要,进而根据所述用户密码摘要和所述弱密码加密摘要判断所述用户密码数据是否为弱密码这一步骤,其具体包括:

将所述用户密码数据的身份验证字段转化为十六进制字符串,得到第一密码数据;

基于反序列规则截取所述第一密码数据得到第一密码盐值和所述用户密码摘要;

根据所述检测命中次数倒序检索所述弱密码明文字典,依次得到多个所述第一弱密码明文;

根据所述第一弱密码明文和所述第一密码盐值进行摘要初始化、多次摘要以及加密处理得到所述弱密码加密摘要;

将所述用户密码摘要与所述弱密码加密摘要进行字段匹配;

当所述用户密码摘要与所述弱密码加密摘要匹配一致,确定所述用户密码数据为弱密码,并更新对应的所述第一弱密码明文的检测命中次数;

当所述用户密码摘要与所述弱密码加密摘要匹配不一致,确定所述用户密码数据不为弱密码。

进一步地,在本发明的一个实施例中,所述MySQL数据库弱密码检测方法还包括以下步骤:

当确定所述用户密码数据为弱密码,将所述用户密码数据以及对应的用户信息和主机信息存储到预设的弱密码判定库;

当所述弱密码判定库中存储的所述用户密码数据被修改,将被修改的所述用户密码数据从所述弱密码判定库中移除;

其中,所述弱密码判定库用于在所述获取预先构建的弱密码明文字典这一之前,预先对所述用户密码数据进行弱密码初始匹配。

进一步地,在本发明的一个实施例中,所述MySQL数据库弱密码检测方法还包括以下步骤:

当确定所述用户密码数据为弱密码,获取预设的告警规则和推送目标,进而根据所述用户密码数据和所述告警规则生成弱密码告警信息,并将所述弱密码告警信息发送至所述推送目标。

另一方面,本发明实施例提供了一种MySQL数据库弱密码检测系统,包括:

数据解析模块,用于获取待检测MySQL数据库的数据存放文件,对所述数据存放文件进行解析得到数据库版本信息和用户密码数据;

数据库版本确定模块,用于获取预先构建的弱密码明文字典,并根据所述数据库版本信息确定所述待检测MySQL数据库的数据库版本;

第一弱密码判断模块,用于当所述数据库版本为MySQL5.6版本或MySQL5.7版本,根据所述弱密码明文字典对所述用户密码数据进行字段匹配,并根据匹配结果判断所述用户密码数据是否为弱密码;

第二弱密码判断模块,用于当所述数据库版本为MySQL8.0版本,根据所述用户密码数据生成用户密码摘要,并根据所述弱密码明文字典生成弱密码加密摘要,进而根据所述用户密码摘要和所述弱密码加密摘要判断所述用户密码数据是否为弱密码。

另一方面,本发明实施例提供了一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现如前面所述的MySQL数据库弱密码检测方法。

另一方面,本发明实施例还提供了一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如前面所述的MySQL数据库弱密码检测方法。

本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到:

本发明实施例获取待检测MySQL数据库的数据存放文件,对数据存放文件进行解析得到数据库版本信息和用户密码数据,然后获取预先构建的弱密码明文字典,并根据数据库版本信息确定待检测MySQL数据库的数据库版本,当数据库版本为MySQL5.6版本或MySQL5.7版本,根据弱密码明文字典对用户密码数据进行字段匹配,并根据匹配结果判断用户密码数据是否为弱密码,当数据库版本为MySQL8.0版本,根据用户密码数据生成用户密码摘要,并根据弱密码明文字典生成弱密码加密摘要,进而根据用户密码摘要和弱密码加密摘要判断用户密码数据是否为弱密码。本发明实施例对于不同的数据库版本设定了对应的弱密码匹配方式,可兼容不同版本的MySQL数据库的数据库密码巡检,克服了传统方法中单一解密扫描方式不适用于新版本数据库的缺陷,提高了MySQL数据库弱密码检测的效率和准确性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面对本发明实施例中所需要使用的附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。

图1为本发明实施例提供的MySQL数据库弱密码检测方法的一种流程图;

图2为本发明实施例提供的步骤S101的一种流程图;

图3为本发明实施例提供的预先构建弱密码明文字典的一种流程图;

图4为本发明实施例提供的步骤S103的一种流程图;

图5为本发明实施例提供的步骤S104的一种流程图;

图6为本发明实施例提供的MySQL数据库弱密码检测方法的另一种流程图;

图7为本发明实施例提供的MySQL数据库弱密码检测方法的另一种流程图;

图8为本发明实施例提供的MySQL数据库弱密码检测方法的具体流程示意图;

图9为本发明实施例提供的MySQL数据库弱密码检测系统的结构示意图;

图10为本发明实施例提供的电子设备的硬件结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统示意图中的模块划分,或流程图中的顺序执行所示出或描述的步骤。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。

在本发明的描述中,多个的含义是两个或两个以上,如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。此外,除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

本申请实施例提供的MySQL数据库弱密码检测方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、机顶盒等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现MySQL数据库弱密码检测方法的应用等,但并不局限于以上形式。

本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据用户信息、用户行为数据,用户历史数据以及用户位置信息等与用户身份或特性相关的数据进行相关处理时,都会先获得用户的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关国家和地区的相关法律法规和标准。此外,当本申请实施例需要获取用户的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的用户相关数据。

为解决MySQL5.6和MySQL5.7默认加密方式与MySQL8.0默认加密方式的差异导致解密方式不同,本发明实施例提出一种MySQL数据库弱密码检测方法,可针对MySQL5.6、MySQL5.7版本的MySQL数据库的默认加密插件mysql_native_password以及MySQL8.0版本的MySQL数据库的默认加密插件caching_sha2_password进行巡检并进行密码扫描,判断其是否为弱密码。

如图1所示为本发明实施例提供的MySQL数据库弱密码检测方法的一种流程图,参照图1,本发明实施例提供了一种MySQL数据库弱密码检测方法,具体包括以下步骤:

S101、获取待检测MySQL数据库的数据存放文件,对数据存放文件进行解析得到数据库版本信息和用户密码数据。

具体地,数据库密码采集,解析MySQL数据存放文件MYD、IBD文件,获取数据库版本以及编译后的密码。

如图2所示为本发明实施例提供的步骤S101的一种流程图,参照图2,进一步作为可选的实施方式,获取待检测MySQL数据库的数据存放文件,对数据存放文件进行解析得到数据库版本信息和用户密码数据这一步骤,其具体包括:

S1011、通过预设的可移植采集程序获取待检测MySQL数据库的数据存放文件;

S1012、解析数据存放文件,得到数据库版本信息和用户密码数据,并确定用户密码数据的密码字段和身份验证字段。

具体地,通过打包工具将采集程序生成一个不依赖运行环境的兼容性强的可移植的可执行程序,该程序可以采集并解析MySQL数据存放文件MYD、IBD文件,获取该实例版本信息、用户表中密码字段信息以及身份验证字段信息。

S102、获取预先构建的弱密码明文字典,并根据数据库版本信息确定待检测MySQL数据库的数据库版本。

具体地,根据日常运维以及网络上已公布的密码收录复杂程度较差的明文密码形成弱密码明文字典,以便后续采集分析并初始化命中次数。

如图3所示为本发明实施例提供的预先构建弱密码明文字典的一种流程图,参照图3,进一步作为可选的实施方式,MySQL数据库弱密码检测方法还包括预先构建弱密码明文字典的步骤,其具体包括:

S201、获取已公开的密码复杂程度低的多个第一弱密码,并生成对应的多个第一弱密码明文;

S202、根据第一弱密码明文构建弱密码明文字典,并初始化各第一弱密码明文的检测命中次数。

具体地,收集弱密码明文字典,如:123456、admin、000000、test等,并初始化各弱密码明文的检测命中次数(即检测到目标数据库中存在该弱密码的次数)。

S103、当数据库版本为MySQL5.6版本或MySQL5.7版本,根据弱密码明文字典对用户密码数据进行字段匹配,并根据匹配结果判断用户密码数据是否为弱密码。

具体地,解析MySQL版本,根据不同版本数据库使用不同方式进行密码分析并判别弱密码。

如图4所示为本发明实施例提供的步骤S103的一种流程图,参照图4,进一步作为可选的实施方式,根据弱密码明文字典对用户密码数据进行字段匹配,并根据匹配结果判断用户密码数据是否为弱密码这一步骤,其具体包括:

S1031、根据检测命中次数倒序检索弱密码明文字典,依次得到多个第一弱密码明文;

S1032、通过预设的MySQL内置函数对第一弱密码明文进行加密生成弱密码加密字符串;

S1033、将密码字段和身份验证字段分别与弱密码加密字符串进行字段匹配;

S1034、当密码字段和/或身份验证字段与弱密码加密字符串匹配一致,确定用户密码数据为弱密码,并更新对应的第一弱密码明文的检测命中次数;

S1035、当密码字段和身份验证字段均与弱密码加密字符串匹配不一致,确定用户密码数据不为弱密码。

具体地,对于MySQL5.6、5.7版本的MySQL数据库,弱密码匹配检测的流程如下:

1)按命中次数倒序检索明文弱密码库,使用MySQL内置函数加密明文密码生成弱密码加密字符串。

2)将采集的用户密码数据(包括密码字段和身份验证字段)逐一对弱密码加密字符进行对比分析。

3)若匹配一致则判定该用户密码为弱密码,并在弱密码库中标记一次命中次数;若匹配不一致则判定该用户密码不为弱密码。

在一些可选的实施例中,本发明实施例采用SHA256算法对第一弱密码明文进行加密得到弱密码加密字符串。

S104、当数据库版本为MySQL8.0版本,根据用户密码数据生成用户密码摘要,并根据弱密码明文字典生成弱密码加密摘要,进而根据用户密码摘要和弱密码加密摘要判断用户密码数据是否为弱密码。

如图5所示为本发明实施例提供的步骤S104的一种流程图,参照图5,进一步作为可选的实施方式,根据用户密码数据生成用户密码摘要,并根据弱密码明文字典生成弱密码加密摘要,进而根据用户密码摘要和弱密码加密摘要判断用户密码数据是否为弱密码这一步骤,其具体包括:

S1041、将用户密码数据的身份验证字段转化为十六进制字符串,得到第一密码数据;

S1042、基于反序列规则截取第一密码数据得到第一密码盐值和用户密码摘要;

S1043、根据检测命中次数倒序检索弱密码明文字典,依次得到多个第一弱密码明文;

S1044、根据第一弱密码明文和第一密码盐值进行摘要初始化、多次摘要以及加密处理得到弱密码加密摘要;

S1045、将用户密码摘要与弱密码加密摘要进行字段匹配;

S1046、当用户密码摘要与弱密码加密摘要匹配一致,确定用户密码数据为弱密码,并更新对应的第一弱密码明文的检测命中次数;

S1047、当用户密码摘要与弱密码加密摘要匹配不一致,确定用户密码数据不为弱密码。

具体地,对于MySQL8.0版本的MySQL数据库,弱密码匹配检测的流程如下:

1)将身份验证字段值转换十六进制数值。

2)按反序列规则截取用户密码得到盐值以及用户密码摘要。

3)按命中次数倒序检索明文弱密码库,将明文弱密码与盐值进行摘要初使化、多次摘要、最终加密等密码处理得到弱密码加密字符。

4)将弱密码加密字符与用户密码摘要进行对比分析。

5)若匹配一致则判定该用户密码为弱密码,并在弱密码库中标记一次命中次数;若匹配不一致则判定该用户密码不为弱密码。

可以认识到,本发明实施例针对caching_sha2_password加密插件生成的随机密码串,无法用以往md5的方式进行解密,可通过密码反序列化得到一个固定的加密数据,再将明文弱密码字典加密进行对比,从而可以准确分析数据库用户弱密码问题。

在一些可选的实施例中,本发明实施例采用SHA256算法对第一弱密码明文和第一密码盐值进行摘要初始化、多次摘要以及加密处理得到弱密码加密摘要。

如图6所示为本发明实施例提供的MySQL数据库弱密码检测方法的另一种流程图,参照图6,进一步作为可选的实施方式,MySQL数据库弱密码检测方法还包括以下步骤:

S105、当确定用户密码数据为弱密码,将用户密码数据以及对应的用户信息和主机信息存储到预设的弱密码判定库;

S106、当弱密码判定库中存储的用户密码数据被修改,将被修改的用户密码数据从弱密码判定库中移除;

其中,弱密码判定库用于在获取预先构建的弱密码明文字典这一之前,预先对用户密码数据进行弱密码初始匹配。

具体地,本发明实施例的历史巡检结果可进行再利用存储,将判定为弱密码的用户信息以及主机信息存入判定库中,再下一次巡检时优先匹配该库中的实例用户密码,若弱密码已被修改则在判定库移除该实例信息。

如图7所示为本发明实施例提供的MySQL数据库弱密码检测方法的另一种流程图,参照图7,进一步作为可选的实施方式,MySQL数据库弱密码检测方法还包括以下步骤:

S107、当确定用户密码数据为弱密码,获取预设的告警规则和推送目标,进而根据用户密码数据和告警规则生成弱密码告警信息,并将弱密码告警信息发送至推送目标。

具体地,本发明实施例支持弱密码告警信息推送,将判定为弱密码的实例信息以短信、邮箱等告警方式及时推送至预设实例管理员。

如图8所示为本发明实施例提供的MySQL数据库弱密码检测方法的具体流程示意图,可以理解的是,本发明的一个具体实施例的步骤如下:

步骤1:收集弱密码明文字典,如:123456、admin、000000、test等,并初始化命中次数。

步骤2:数据库密码采集,解析MySQL数据存放文件MYD、IBD文件,获取数据库版本以及编译后的密码。若版本为5.6、5.7:获取用户列表中密码字段以及密码插件。若版本为5.8:获取数据库用户表中的身份验证字段SHA-2算法加密后的密码,并通过hex()函数将其转换成十六进制数值。

步骤3:根据版本分析数据库用户密码。

1)优先匹配判定库中已判定为弱密码的信息,若存在则为弱密码,若不存在则进行下一步。

2)若版本为5.6、5.7:遍历弱密码字典中明文密码,使用5.7数据库函数将明文密码加密成密码字符,将密码字符与数据库用户密码进行比较。

3)若版本为8.0:截取数据库用户密码指定范围的数值作为盐值以及对应密码摘要。遍历弱密码字典中明文密码,将明文密码和盐值放置在函数中,通过初使化摘要,根据明文弱密码长度、盐值长度多次生成摘要,得到最终摘要。将多个最终摘要拼接成一个弱密码加密摘要。将弱密码摘要与用户密码摘要进行比较。

步骤4:判定步骤3对比结果,结果若为一致,则说明该用户密码为弱密码。

步骤5:将判定为弱密码的实例信息、用户信息、密码、管理员信息保存到判定库中,弱密码库累计一次命中次数。

步骤6:系统查询资产系统中的管理员联系方式,以短信、微信、邮箱等方式将弱密码巡检结果推送给数据库管理员。

以上对本发明实施例的方法步骤进行了说明。可以理解的是,本发明实施例对于不同的数据库版本设定了对应的弱密码匹配方式,可兼容不同版本的MySQL数据库的数据库密码巡检,克服了传统方法中单一解密扫描方式不适用于新版本数据库的缺陷,提高了MySQL数据库弱密码检测的效率和准确性。

与现有技术相比,本发明实施例还具有以下优点:

可移植兼容多版本MySQL密码采集装置:本发明实施例兼容且不局限于MyISAM、InnoDB存储引擎,兼容mysql_native_password、caching_sha2_password加密插件,兼容5.6*、5.7*、8.0*版本的MySQL数据库的密码采集,且使用了不依赖于环境的可移植插件装置,可实现在不同操作系统中实现零冲突无环境依赖采集数据。克服mysql_native_password解密方式不兼容caching_sha2_password加密后的随机密码,实现兼容大批量不同版本的数据库密码巡检。

巡检结果迭代再利用:利用判定库存放历史巡检出弱密码的实例信息,在分析前优先匹配库中信息,若匹配出则为弱密码,无需进行反序列和加密解码操作。且利用弱密码库的命中率来进行优先级分析。该方法加快巡检效率,提高巡检命中率。

如图9所示为本发明实施例提供的MySQL数据库弱密码检测系统的结构示意图,参照图9,本发明实施例提供了一种MySQL数据库弱密码检测系统,包括:

数据解析模块,用于获取待检测MySQL数据库的数据存放文件,对数据存放文件进行解析得到数据库版本信息和用户密码数据;

数据库版本确定模块,用于获取预先构建的弱密码明文字典,并根据数据库版本信息确定待检测MySQL数据库的数据库版本;

第一弱密码判断模块,用于当数据库版本为MySQL5.6版本或MySQL5.7版本,根据弱密码明文字典对用户密码数据进行字段匹配,并根据匹配结果判断用户密码数据是否为弱密码;

第二弱密码判断模块,用于当数据库版本为MySQL8.0版本,根据用户密码数据生成用户密码摘要,并根据弱密码明文字典生成弱密码加密摘要,进而根据用户密码摘要和弱密码加密摘要判断用户密码数据是否为弱密码。

上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。

本发明实施例还提供了一种电子设备,电子设备包括:存储器、处理器、存储在存储器上并可在处理器上运行的程序以及用于实现处理器和存储器之间的连接通信的数据总线,程序被处理器执行时实现上述MySQL数据库弱密码检测方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。

如图10所示为本发明实施例提供的电子设备的硬件结构示意图,参照图10,本发明实施例提供了一种电子设备,包括:

处理器1001,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明实施例所提供的技术方案;

存储器1002,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器1002可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1002中,并由处理器1001来调用执行本发明实施例的MySQL数据库弱密码检测方法;

输入/输出接口1003,用于实现信息输入及输出;

通信接口1004,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;

总线1005,在设备的各个组件(例如处理器1001、存储器1002、输入/输出接口1003和通信接口1004)之间传输信息;

其中处理器1001、存储器1002、输入/输出接口1003和通信接口1004通过总线1005实现彼此之间在设备内部的通信连接。

本发明实施例还提供了一种存储介质,存储介质为计算机可读存储介质,用于计算机可读存储,存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述MySQL数据库弱密码检测方法。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。

在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或上述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。

此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,上述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。

上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印上述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得上述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

相关技术
  • 集中式密码管理方法、装置、电子设备及计算机存储介质
  • 一种病毒邮件检测方法、系统及电子设备和存储介质
  • 裸电芯外观尺寸检测方法、电子设备、存储介质及系统
  • 极片检测方法、电子设备、存储介质及系统
  • web端广告曝光检测方法、存储介质、电子设备及系统
  • 弱密码检测方法、装置、电子设备及计算机可读存储介质
  • 弱密码检测方法、装置、电子设备及计算机可读存储介质
技术分类

06120116624398