1.本发明涉及互联网技术领域,尤其是一种用户身份识别方法、系统、计算机设备及存储介质。
背景技术:2.目前一个企业有多个应用平台,为了对这些海量的用户进行精准、非重复性的信息推广,需要给每个用户打上唯一身份标识。而现有技术所采用的生成身份标识的加密算法,例如md5加密算法,sha
‑
2加密算法等,虽然能在一定程度上打破因为多种应用平台而形成的数据壁垒,但是现有的身份标识生成方法,仍然存在着用户身份识别不精准,并且所生成的身份标识易被破解,以及存在数据安全隐患等问题。
技术实现要素:3.有鉴于此,为至少部分解决上述技术问题之一,本发明实施例目的在于提供一种精确度更高,安全系数更高的用户身份识别方法,以及能够对应实现该方法的系统、计算机设备以及计算机存储介质。
4.第一方面,本技术的技术方案提供了一种用户身份识别方法,其步骤包括:
5.从至少一个平台获取用户身份信息,对所述用户身份信息进行校验;
6.从校验后的所述用户身份信息中提取得到第一身份标识信息,通过密码算法根据所述第一身份标识信息生成第一消息摘要;
7.将所述第一消息摘要与第二身份标识信息的第二消息摘要进行匹配;
8.根据匹配结果确定第一消息摘要与所述第二消息摘要不相同,生成用户身份标识,根据所述用户身份标识进行用户身份识别。
9.在本技术方案的一种可行的实施例中,所述从至少一个平台获取用户身份信息,对所述用户身份进行校验这一步骤,其包括安全性校验和/或完整性校验。
10.在本技术方案的一种可行的实施例中,所述从校验后的所述用户身份信息中提取得到第一身份标识信息,通过密码算法根据所述第一身份标识信息生成第一消息摘要这一步骤,其包括:
11.获取密码算法实例,将所述第一身份标识信息输入所述密码算法实例计算得到第一哈希值;
12.将所述第一哈希值进行数据类型的转换,得到所述第一消息摘要。
13.在本技术方案的一种可行的实施例中,在将所述第一消息摘要与第二身份标识信息的第二消息摘要进行匹配这一步骤之前,所述方法还包括以下步骤:
14.从数据库中获取所述第二身份标识信息;
15.所述数据库的构建步骤包括:
16.创建若干平台用户表,将获取得到的历史用户身份信息添加至所述平台用户表中;
17.获取所述第二消息摘要,将所述第二消息摘要关联至所述历史用户身份信息,整合关联后的所述平台用户表,得到所述数据库。
18.在本技术方案的一种可行的实施例中,所述安全性校验包括以下步骤至少之一:
19.校验所述用户身份信息中的通讯信息是否为异常通讯信息;
20.校验所述用户身份信息中的设备标识是否为异常设备标识;
21.校验所述用户身份信息中的互联网协议地址是否为异常互联网协议地址;
22.校验所述用户身份信息中的用户账户是否为异常账户。
23.在本技术方案的一种可行的实施例中,所述获取密码算法实例,将所述第一身份标识信息输入所述密码算法实例计算得到第一哈希值这一步骤,其包括:
24.对所述第一身份标识信息进行位填充;
25.将位填充后所述第一身份标识信息进行分块,将分块得到单元通过密码散列函数计算得到所述第一哈希值。
26.在本技术方案的一种可行的实施例中,所述方法还包括以下步骤:
27.根据所述匹配结果确定第一消息摘要与所述第二消息摘要相同,根据所述第一身份标识信息对所述第二身份标识信息进行更新,将更新后的第二身份标识信息进行存储。
28.第二方面,本发明的技术方案还提供一种用户身份识别系统,其包括:
29.信息获取单元,用于从至少一个平台获取用户身份信息,对所述用户身份信息进行完整性校验;
30.信息处理单元,用于从校验后的所述用户身份信息中提取得到第一身份标识信息,通过密码算法根据所述第一身份标识信息生成第一消息摘要;并将所述第一消息摘要与第二身份标识信息的第二消息摘要进行匹配;
31.身份标记单元,用于根据匹配结果确定第一消息摘要与所述第二消息摘要不相同,生成用户身份标识,根据所述用户身份标识进行用户身份识别;
32.数据库,用于存储和提供所述第二身份标识信息。
33.第三方面,本发明的技术方案还提供一种用户身份识别的计算机设备,其包括:
34.至少一个处理器;
35.至少一个存储器,用于存储至少一个程序;
36.当至少一个程序被至少一个处理器执行,使得至少一个处理器运行第一方面中任意一种用户身份识别方法。
37.第四方面,本发明的技术方案还提供了一种存储介质,其中存储有处理器可执行的程序,处理器可执行的程序在由处理器执行时用于运行第一方面中的方法。
38.本发明的优点和有益效果将在下面的描述中部分给出,其他部分可以通过本发明的具体实施方式了解得到:
39.本技术技术方案在获取多个平台的用户身份信息之后进行了初次校验,提高了用户信息的可用性,进而提高了用户身份识别结果的准确性;根据校验后的用户身份信息通过密码算法生成消息摘要,并通过消息摘要匹配的方式以确定该用户信息是否为新录入的用户信息,进一步提高了用户身份识别的准确性;并且,方法采用消息摘要作为匹配对象,由于消息摘要难以进行破解以及回推,提高了方案的安全性。
附图说明
40.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1为本发明实施例提供的一种用户身份识别方法的步骤流程图;
42.图2为本发明实施例中一级仓库与二级仓库之间的数据流转示意图。
具体实施方式
43.下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
44.在前述背景技术中,现有的多平台用户身份识别方案存在着识别结果不精准,采用的身份标识的加密算法易被破解,用户数据面临着身份标识被盗用等安全风险。为解决前述技术问题至少之一,本技术的技术方案提出了一种可以为多种应用平台的用户信息标注上唯一且安全的身份标识,不仅能够打破各个应用平台之间的数据壁垒,以帮助新平台实现快速拉新,还能够提高用户分析的精确度,避免推送重复信息,提高用户画像的精准度。
45.在第一方面,如图1所示,本技术提供的一种用户身份识别方法,其主要步骤可以包括s100
‑
s400:
46.s100、从至少一个平台获取用户身份信息,对用户身份信息进行校验;
47.具体地,在取得了应用平台授权前提下,实施例从多个应用平台获取得到平台的用户身份信息;本领域技术人员可以理解的是,从多个应用平台获取得到用户身份信息,其信息的构成或数据的类型、格式等属性可能存在差异;实施例首先将获取的各平台的用户身份信息进行汇总,并进行分析处理,其中分析处理主要是对用户信息进行安全性校验以及完整性校验,安全性校验是确保所获取的用户信息不是诸如黑名单或者异常用户的用户信息,完整性校验是确保所获取得到用户身份信息均具有必要要素的信息,例如用户的账户信息、手机号码以及移动设备识别码等信息。
48.s200、从校验后的用户身份信息中提取得到第一身份标识信息,通过密码算法根据第一身份标识信息生成第一消息摘要;
49.具体地,经过步骤s100进行校验,确认所获取的用户身份信息均通过安全性校验以及完整性校验之后,对用户身份信息进行必要的数据清洗,去除噪声数据以及进行差值填补等等,使用标准化处理对信息数据的属性格式等进行调整与统一,将标准化处理后的用户身份信息进行关键信息内容的提取,再通过密码算法计算得到对应用户身份信息的唯一身份标识。示例性地,实施例中采用sm3密码杂凑算法,属于哈希(摘要)算法的一种,杂凑值为256位。该密码算法对于恶意攻击者而言攻击难度大,系统安全系数高、用户数据安全性更高。具体到实施例中,计算进行标准化处理后的用户身份信息的sm3 hash值,通过
sm3digest类对用户信息进行sm3 hash值计算,所得到的唯一身份标识,即为sm3算法最终得到的消息摘要。其中,sm3digest类为了提供sm3密码上安全的报文摘要功能而设计的引擎类;密码上安全的消息摘要可以输入可以是任意大小,并产生固定大小的输出,该输出称为消息摘要。当收到加密数据和消息摘要时,可以从数据中重新计算消息摘要,并检查计算的摘要值是否与随数据一起收到的消息摘要相匹配。如果两个消息摘要相同,则数据在传输期间未被篡改。
50.s300、将第一消息摘要与第二身份标识信息的第二消息摘要进行匹配;
51.其中,第二身份标识信息可以选择历史数据中的用户身份信息的标识信息,例如,同样是通过sm3密码杂凑算法进行加密的消息摘要,将步骤s200中新生成的消息摘要与历史数据的消息摘要进行逐一对比。
52.s400、根据匹配结果确定第一消息摘要与第二消息摘要不相同,生成用户身份标识,根据用户身份标识进行用户身份识别;
53.具体地,将步骤s300中得到的两份消息摘要进行字节或字的逐一比较,确定两份消息摘要是否相同,若两份消息摘要不相同,则实施例可以确定新生成的消息摘要(第一消息摘要)所对应的用户身份信息为新用户的信息。确定该用户为新用户之后,可以进行新用户的注册以及引导操作。
54.在一些可选择的实施例中,步骤s100中对用户身份信息进行校验这一过程,其可以包括安全性校验和/或完整性校验;
55.而其中,安全性校验包括以下步骤至少之一:校验用户身份信息中的通讯信息是否为异常通讯信息;校验用户身份信息中的设备标识是否为异常标识;校验用户身份信息中的互联网协议地址是否为异常互联网协议地址;校验用户身份信息中的用户账户是否为异常账户。
56.具体地,实施例在获取各个平台的用户身份信息之后,对身份信息进行校验的内容可以具体包括安全性校验和/或完整性校验;示例性地,实施例中的完整性校验,主要是校验用户身份信息中的通讯信息(例如手机号码)、unionid以及平台登录账号等字段的内容是否完整,若内容完整,则通过完整性校验;否则,可以根据预设的包容度(即可以接受几个字段内容的缺失)对存在字段缺失的用户身份信息记录进行剔除。安全性校验主要是分析平台用户信息的通讯信息(例如手机号码)、设备标识(例如移动设备识别码meid)、ip地址和平台登录账号是否为异常用户的数据记录或者是否记录在黑名单的用户信息。
57.在一些可选的实施例中,从校验后的用户身份信息中提取得到第一身份标识信息,通过密码算法根据第一身份标识信息生成第一消息摘要这一步骤s200;其可以细分为步骤s210
‑
s220:
58.s210、获取密码算法实例,将第一身份标识信息输入密码算法实例计算得到第一哈希值;
59.具体地,实施例中,计算用户身份信息sm3 hash值的第一步是创建java sm3digest实例,通过构造方法new sm3digest()获取sm3digest实例,sm3digest digest=new sm3digest();然后再传入需要计算sm3 hash值的用户信息,计算应用程序hash值的第二步是向已初始化的消息摘要对象提供数据。实施例将用户平台账号account包括手机号、unionid以及平台账号,作为初始化的消息摘要对象。获得消息摘要对象数据后可以
调用sm3密码杂凑算法计算其摘要值。
60.s220、将第一哈希值进行数据类型的转换,得到第一消息摘要;
61.具体地,调用sm3密码杂凑算法,计算用户平台账号account的sm3 hash值,并转为字符串类型,转换得到字符串的即为本技术的第一消息摘要。示例性地,本实施例的sm3密码杂凑算法调用代码为:
62.digest.update(account,0,account.length);
63.byte[]byte=new byte[digest.getdigestsize()];
[0064]
digest.dofinal(byte,0);
[0065]
sms3=new string(byte);
[0066]
在一些可行的实施例中,将第一身份标识信息输入密码算法实例计算得到第一哈希值这一步骤s210,其可以包括更为详细的步骤s211
‑
s212:
[0067]
s211、对第一身份标识信息进行位填充;
[0068]
s212、将位填充后第一身份标识信息进行分块,将分块得到的单元通过密码散列函数计算得到第一哈希值;
[0069]
具体地,实施例中的用户身份信息m,其位长度为l,首先在加密过程中,在用户身份信息m尾补一个比特位0b1,然后补k个比特位0b0,k为满足l+1+k≡448mod512的最小非负整数,最后,将l转为64位长整数,填充到用户身份信息m最后。然后将位填充后的用户身份信息m按位长度512划分为块m(1),m(2),...,m(n),n=len(m)/512,将块m(i)按位长度32划分为单词m0(i),m1(i),...,m
16
(i);最后,通过密码散列函数计算得到sm3 hash值。
[0070]
为了更加便于对历史数据中的用户身份信息进行调用,在一些可选择的实施例中,在将第一消息摘要与第二身份标识信息的第二消息摘要进行匹配这一步骤s300之前,方法还包括步骤s230
‑
s240:
[0071]
s230、创建若干平台用户表,将获取得到的历史用户身份信息添加至平台用户表中;
[0072]
s240、获取第二消息摘要,将第二消息摘要关联至历史用户身份信息,整合关联后的平台用户表,得到数据库;
[0073]
具体地,实施例中,如图2所示,从各个平台新获取的用户身份信息暂存在会员中台用户库中,该会员中台用户库可以作为本实施例的一级仓库;为了构建可以存储海量历史数据(包括用户身份信息以及身份标识)的二级仓库,可以采用mongo db;首先实施例创建平台用户表,并保存用户数据;其mongo语句如下:
[0074]
db.user.insert({_id:10,accounttype:
″
01
″
,account:
″
1508808104x
″
,accounthash:
″
0b0880f6f2ccd827809a432420e42b66d3772dc18d80789049d0f9653efeae5c
″
}
[0075]
其中account是前述用户的平台账号信息,包括手机号、unionid以及平台账号,accounthash是平台账号步骤s212计算出来的sm3 hash值。然后实施例再获取平台账号信息对应的sm3 hash值,通过执行mongo语句db.user.find({account:"1508808104x"}),获取到二级仓库中完整的用户json数据,其中包含平台账号sm3 hash值。
[0076]
此外,在一些可行的实施例中,实施例方法还包括步骤s500、根据匹配结果确定第一消息摘要与第二消息摘要相同,根据第一身份标识信息对第二身份标识信息进行更新,
将更新后的第二身份标识信息进行存储;
[0077]
具体地,在将新生成的消息摘要与历史数据的消息进行匹配之后,若匹配结果相同则直接返回原有的身份标识信息puid;若不相同则保存新用户的身份标识信息puid到二级仓库中,执行下述程序语句:
[0078]
db.user.insert({_id:10,accounttype:"01",account:"1508808104x",accounthash:"0b0880f6f2ccd827809a432420e42b66d3772dc18d80789049d0f9653efeae5c"}
[0079]
保存用户身份标识到二级仓库当中。
[0080]
第二方面,本技术的技术方案还提供一种用户身份识别系统,其包括:
[0081]
信息获取单元,用于从至少一个平台获取用户身份信息,对用户身份信息进行校验;
[0082]
信息处理单元,用于从校验后的用户身份信息中提取得到第一身份标识信息,通过密码算法根据第一身份标识信息生成第一消息摘要;并将第一消息摘要与第二身份标识信息的第二消息摘要进行匹配;
[0083]
身份标记单元,用于根据匹配结果确定第一消息摘要与第二消息摘要不相同,生成用户身份标识,根据用户身份标识进行用户身份识别;
[0084]
数据库,用于存储和提供第二身份标识信息。
[0085]
第三方面,本技术的技术方案还提供一种用户身份识别的计算机设备,其包括至少一个处理器;至少一个存储器,用于存储至少一个程序;当至少一个程序被至少一个处理器执行,使得至少一个处理器运行如第一方面中的一种用户身份识别方法。
[0086]
本发明实施例还提供了一种存储介质内存储有程序,程序被处理器执行,实现如第一方面中的方法。
[0087]
从上述具体的实施过程,可以总结出,本发明所提供的技术方案相较于现有技术存在以下优点或优势:
[0088]
本技术技术方案通过给企业各个应用平台的用户打上唯一、安全的身份标识,打通各个应用之间的数据壁垒,帮助新应用快速拉新,提高用户分析精准度,可以避免推送重复信息,提高用户画像的精准度。如表1所示,sm3算法跟其他加密算法对比,加密速度快,而且安全性比另外2种加密方式高。
[0089]
表1
[0090]
加密算法耗时md50.9ssha0.8ssm30.3s
[0091]
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于对技术提供更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
[0092]
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
[0093]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
[0094]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0095]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
[0096]
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可以作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。