具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请实施例提供的一种身份验证的过程,具体包括以下步骤:
S101:确定当前时刻所述待验证账户对应的验证场景。
在现有技术中,无论身份验证过程的发起方是用户还是服务提供商,但是用于身份验证的问题通常都是存储在服务器中的,并且也需要由服务器发送至终端进行身份验证,也就是说,通常身份验证过程中,是由服务器确定待验证账户,并选择对应的安全问题发送至该待验证账户登录的终端,进行身份验证过程的。同理,在本申请实施例中,可由服务器确定待验证账户,以及与该待验证账户对应的各安全问题。
具体的,该服务器可采用与现有技术相同的方法确定需要进行身份验证的账户,作为待验证账户。例如,当任一账户在长时间没有使用记录,且突然出现登录行为时,确定该账户需要进行身份验证,确定该账户为待验证账户,或者,当任一账户发起涉及隐私信息的业务请求时,确定该账户需要进行身份验证,确定该账户为待验证账户,又或者,当任一账户的行为与历史行为记录大相径庭时,确定该账户需要进行身份验证,确定该账户为待验证账户等等,该服务器具体采用何种方式确定该待验证账户本申请并不做限定,可采用与现有技术相同的多种方法。
另外,由于在现有技术中,为了提高身份验证时出题的灵活性以及用于身份验证的安全问题的安全性,通常每个账户可对应多个安全问题。并且在需要对账户进行身份验证时,该服务器可根据该账户的标识,确定对应的多个安全问题,再从各安全问题中选择指定数量的安全问题用于身份验证,如此使得每次进行身份验证时的安全问题可以不完全一致,既增加了出题的灵活性,又减少了每个安全问题的曝光率,提高了安全性。
同理,在本申请中,该服务器也可确定该待验证账户对应的各安全问题,以便后续的操作。具体的,该服务器可以根据确定的该待验证账户的标识,从已经存储的各账户的标识与各安全问题的标识的对应关系中,确定该待验证账户的标识对应各安全问题的标识,并通过各安全问题的标识确定与该待验证账户对应的各安全问题,当然,该服务器也可采用其他方式确定与该待验证账户对应的各安全问题,本申请对此不做限定,并不再赘述。
需要说明的是,在本申请实施例中,该服务器可以是单独的一台设备,也可以是又多台设备组成的系统,即,分布式服务器。
进一步地,如前文所述,由于不同的安全问题的正确答案,可能在不同的场景下存在被获知的可能(如,登录之后的账户,由于可以浏览该账户内的大部分账户信息,导致一部分安全问题的正确答案被获知的可能性增加),而为了避免由于账户信息被获知导致安全问题的准确性下降的情况出现,在本申请实施例中,当该服务器确定了该待验证账户以及该待验证账户对应的各安全问题之后,该服务器还可以确定该待验证账户对应的验证场景,即,在进行身份验证时该待验证账户所处的场景,以便后续的步骤的进行。
具体的,由于该服务器在确定该待验证账户之后,该待验证账户通常只有进行身份验证之后才可继续执行业务,或者该待验证账户退出身份验证的过程不再继续执行业务,所以当该服务器确定该待验证账户之后,一般该待验证账户所处的场景在身份验证结束之前不会改变。于是,在本申请中,该服务器可以根据预设的验证场景分类,确定该待验证账户当前时刻所处的验证场景。
其中,该预设的验证场景分类至少包括:登录的验证场景以及执行业务的验证场景。该登录的验证场景,即,该待验证账户尚未登录成功时,该服务器对该待验证账户进行身份验证的场景。该执行业务的验证场景,即,该待验证账户已经登录成功,并处于可执行业务的状态时,该服务器对该待验证账户进行身份验证的场景。并且,该预设的验证场景的分类可由工作人员根据实际应用的需要进行设定,例如,假设对于每个账户,该账户在调用该账户对应的购物清单时需要使用密码A,而在调用该账户对应的个人信息是需要使用密码B,则该服务器还可以添加验证场景A以及验证场景B,分别对应于该账户调用购物清单之后的验证场景以及该账户调用了个人信息之后的验证场景。
也就是说,在本申请中,该验证场景的划分可以基于该账户当前可调用的与该账户对应的账户信息的不同而划分。以登录的验证场景和执行业务验证的场景为例,该待验证账户在登录前无法获得与该待验证账户对应的各账户信息,则可确定在该登录的验证场景下该待验证账户的各账户信息已被获知的可能性较低,而该执行业务的场景下,该待验证账户已经可以访问该待验证账户对应的各账户信息,所以该待验证账户的各账户信息已被获知的可能性较高。当然,除了登录的验证场景以及执行业务的验证场景以外,该验证场景还可如何划分本申请并不做具体限定,如前所述,可由工作人员根据经验或者实际应用的需要进行设置。
需要说明的是,在本申请中,调用账户信息后,则该账户信息可对应存在一个访问记录,以表明该账户信息被调用过。
S102:根据所述验证场景,确定所述待验证账户中已被获知的信息,和/或未被获知的信息。
在本申请实施例中,正如步骤S101中所述的,由于在不同的验证场景下,该待验证账户对应的不同的账户信息已被获知的概率是不同的,而通过现有技术生成的安全问题的正确答案,是有可能通过该待验证账户对应的各账户信息确定或者推断出的。例如,根据用户知道的不常用的事实信息生成的安全问题的正确答案,有可能通过该待验证账户中存储的用户的个人信息推断出(如,对于安全问题“你的出生城市”,则可通过该待验证账户中设置的个人信息中的“所在地”推断出),而通过用户的访问记录生成的安全问题的正确答案,则可通过该待验证账户的访问记录确定(如,对于安全问题“选择上周你观看的电影”,则可通过该用户的购买记录确定),所以该服务器可确定已被获知的账户信息,以便后续操作。
具体的,在本申请中,首先该服务器可根据预设的账户信息与验证场景的对应关系,确定在该待验证账户当前所处的验证场景下,该待验证账户对应的所有账户信息中,存在泄漏的可能的账户信息,即,可获知的信息。
之后,由于在不同的验证场景下,该待验证账户可获知的账户信息不同,但可获取并不意味着该账户信息已经被获知。而针对每一个可获知的账户信息,若该可获知的账户信息没有被该待验证账户访问过,则该可调用账户信息已经被获知的可能性依然较小,所以该服务器还可以确定预设时间段内,该待验证账户的访问记录。
然后,该服务器还可根据该访问记录,确定该待验证账户在该预设的时间段内访问的账户信息,则在预设时间段内该账户没有访问过的账户信息,虽然在当前的验证场景下可以被访问,但仍未被访问,则该没有访问过的账户信息已经被获知的概率较低。
于是,该服务器可以根据该待验证账户在预设时间段内的访问记录,从当前验证场景下可获知的账户信息中,确定已被获知的账户信息,即已被获知的信息。
其中,该预设的账户信息与验证场景的对应关系可用公式
表示,K表示账户信息与验证场景的对应关系,S表示验证场景,i表示不同的验证场景的编号,S
i即表示第i个验证场景,I表示账户信息,I
j表示第j个账户信息,K(S
i,I
j)=1数字表示I
j账户信息在S
i验证场景下不可获知,K(S
i,I
j)=0数字表示I
j账户信息在S
i验证场景下可获知。
而该待验证账户在预设时间段内的访问记录,可以用公式
表示,V表示被访问账户信息与该待验证账户的对应关系,U表示待验证账户,U
i表示第i个待验证账户,即本申请中的该待验证账户,T表示预设时间段,T
k表示第k种预设时间段,I表示账户信息,I
j表示第j个账户信息,V(U
i,T
k,I
j)=1表示I
j账户信息在T
k预设时间段内未被U
i待验证账户访问过,V(U
i,T
k,I
j)=0表示I
j账户信息在T
k预设时间段内已被U
i待验证账户访问过,其中,该T
k与该S
i存在对应关系,并可由工作人员设置,其中,当该验证场景需要使用安全性较高的安全问题进行身份验证(即,正确答案已被获知的可能性低的安全问题),则该T
k的时长可以较长,反之亦然。
另外,在本申请中,该预设的账户信息与验证场景的对应关系,可由工作人员根据经验或者实际应用的需求设定。为方便描述,本申请以该服务器确定已被获知的信息,继续后续步骤S103的说明,该服务器确定未被获知的信息的过程,可见后续描述。
S103:当确定已被获知的信息时,采用与所述已被获知的信息不相关联的安全问题对所述待验证账户进行身份验证,当确定未被获知的信息时,采用与所述未被获知的信息相关联的安全问题对所述待验证账户进行身份验证。
在本申请实施例中,当该服务器确定了该待验证账户对应的已被获知的账户信息(即,已被获知的信息)之后,由于已被获知的账户信息与该待验证账户对应的各安全问题的正确答案有可相关联,而若任一安全问题的正确答案与已被获知的账户信息相关联,则该安全问题的准确性较低,不适于用于身份验证,所以该服务器还可以选择与已被获知的账户信息不相关联的安全问题,即,无法通过已被获知的账户信息获取答案的安全问题,对该待验证账户进行身份验证。
具体的,该服务器可针对该待验证账户的每个安全问题,根据预设的账户信息与安全问题的对应关系,确定与该安全问题的正确答案相关联的账户信息,之后,该服务器可再判断该安全问题的正确答案相关联的账户信息与在步骤S103中确定的该已被获知的账户信息是否匹配,若是,则确定该安全问题与已被获知的账户信息相关联,若否,则确定该安全问题与已被获知的账户信息不相关联。并且,由于该服务器在步骤S103中确定的已被获知的账户信息可以是若干个,所以只要该服务器可以确定任一已被获知的账户信息与该安全问题的正确答案相关联,即可确定该安全问题与已被获知的账户信息相关联。
其中,该预设的账户信息与安全问题的对应关系可用公式
表示,R表示账户信息与安全问题的对应关系,Q表示安全问题,Q
i表示第i个安全问题,I表示账户信息,I
j表示第j个账户信息,R(Q
i,I
j)=1数字表示I
j账户信息与Q
i安全问题的正确答案不相关联,R(Q
i,I
j)=0数字表示I
j账户信息与Q
i安全问题的正确答案相关联,其中,账户信息与正确答案相关联,表示通过该账户信息可以确定或者推断出该正确答案。
需要说明的是,该预设时间段的起止时间可由工作人员设置,例如,从当前时刻开始回溯,确定预设的时间段。
更进一步地,由于该服务器可在步骤S103中确定该待验证账户对应的K(S
i,I
j)以及V(U
i,T
k,I
j),所以当该服务器确定了该待验证账户对应的R(Q
i,I
j)之后,该服务器便可通过公式
针对每个安全问题,计算该安全问题的得分,其中,M表示待验证账户U
i的账户信息的总数量。当该得分不为0时,即,A(U
i,S
j,Q
k)>0时,确定该安全问题的正确答案已被获知的可能性较低,可用于身份验证,其中,A(U
i,S
j,Q
k)表示待验证账户U
i的安全问题Q
k在验证场景S
j下的得分。
最后,当该服务器确定可用于身份验证的各安全问题之后,便可使用任意一个或者多个该可用于身份验证的安全问题,对该待验证账户进行身份验证。
另外,在本申请中,该预设的账户信息与安全问题的对应关系,可由工作人员根据经验或者实际应用的需求设定。
通过如图1所示的身份验证的方法,该服务器在确定了待验证账户以及该待验证账户对应的各安全问题之后,可先确定该待验证账户当前时刻所处的验证场景,之后根据预设的账户信息与验证场景的对应关系,确定当前时刻该验证场景下,可能被获知的账户信息,根据预设时间段内该待验证账户的访问记录,确定该待验证账户调用过的账户信息,确定已被获知的账户信息,最后,根据预设的账户信息与安全问题的对应关系,确定正确答案与已被获知的账户信息相关联的各安全问题,并采用该待验证账户中的其他安全问题(即,与已被获知的账户信息不相关联的安全问题),对该待验证账户进行身份验证。可见,通过本申请提供的方法,可根据用户的访问记录,以及各账户信息与安全问题的正确答案的是否相关联,确定当前时刻验证场景下,可用的安全问题。不再简单的只因为验证场景的不同,而确定选择的安全问题,同时基于用户的访问记录,使得安全问题的出题选择更加可信,在提高利用现有的安全问题的资源的同时,也提高了安全问题的准确性,进而使得身份验证的结果更加可信,并且提高了身份验证的效率。
另外,在本申请实施例中,该账户信息可以包括:与该待验证账户对应的个人信息、该待验证账户的行为日志。其中,该待验证账户对应的个人信息可包括:该待验证账户中存储的用户信息(如,姓名、出生日期、性别、婚姻状况等等)、持有该待验证账户的用户预先设置的安全问题以及安全问题的答案、该待验证账户的关联账户、该待验证账户的好友列表等等,而该待验证账户的行为日志可包括:该待验证账户浏览信息的记录、该账户的购物记录、该账户的支付记录等等,该待验证账户访问记录中可包含该待验证账户的行为日志,但是,该访问记录通常只可通过该服务器确定,而该行为日志通常可通过该待验证账户确定,例如,对于账户s,用户修改个人信息的行为,可以记录于该账户s的访问记录中,并由该服务器确定,但却不会记录在该账户s的行为日志中,任何人登录该账户s后,只能浏览该账户s的行为日志,确定该账户浏览过的信息,而无法获知该账户s的个人信息被修改过。
需要说明的是,在本申请中步骤S103以及步骤S104中,确定已被获知的账户信息以及确定与安全问题相关联的账户信息的步骤并不存在先后顺序的关系,可以同时确定也可以顺序确定,只要,在进行身份验证之前,对该待验证账户的每个安全问题,可以确定该安全问题与已被获知的账户信息的是否相关联即可,并采用与已被获知的账户信息不相关联的安全问题进身份验证。
本申请提供的另一实施例,假设,用户a在注册账户U1时,设置了两个安全问题,Q1:您的出生地是哪里?以及Q2:您的高中班主任姓名?,并且,在该用户a使用该账户U1的过程中,服务器b根据该账户U1的访问记录,生成了安全问题,Q3:您经常购买的物品是什么?以及Q4:以下哪个是您的好友?,则,该账户U1对应的问题可如表1所示。
问题标识 |
问题文本 |
Q1 |
您的出生地是哪里? |
Q2 |
您的高中班主任姓名? |
Q3 |
您经常购买的物品是什么? |
Q4 |
以下哪个是您的好友? |
表1
并且,该账户U1对应的账户信息可如表2所示。
账户信息标识 |
账户信息内容 |
I1 |
账户U1的个人信息 |
I2 |
账户U1的购物信息 |
I3 |
账户U1的好友列表 |
表2
同时,该服务器b内预设的验证场景为登录的验证场景以及执行业务的验证场景,如表3所示。
验证场景标识 |
验证场景 |
S1 |
登录的验证场景 |
S2 |
执行业务的验证场景 |
表3
另外,该服务器b中预设的账户信息与验证场景的对应关系,即,K(Si,Ij),可如表4所示。
表4
通过表4可见,当该账户U1登录之后,可以访问该账户U1对应的所有账户信息,所以在场景S2下,各账户信息I1、I2以及I3均存在被获知的可能。
进一步地,该服务器b中预设的账户信息与安全问题的对应关系,即,R(Qi,Ij),可如表5所示。
表5
通过表5可见,账户信息I1与安全问题Q1的正确答案相关联,即,通过该账户U1中设置的个人信息,可以确定该用户的出生地信息,账户信息I2与安全问题Q3的正确答案相关联,即,通过该账户U1的购物信息,可以确定该用户近期购买的商品,账户信息I3与安全问题Q4的正确答案相关联,即,通过该账户U1的好友列表,可以确定该用户的好友,也就是说,通过各已被获知的账户信息I1、I2、I3,可以分别获取安全问题Q1、Q3、Q4的答案。
最后,该服务器b便可根据公式
对该用户a的账户U
1对应的每个安全问题,计算该安全问题的得分,于是,安全问题Q
1的得分为0、安全问题Q
2的得分为1、安全问题Q
3的得分为0、安全问题Q
4的得分为1,该服务器b可以确定采用安全问题Q
2以及Q
4,对该账户U
1进行身份验证,即,采用无法通过已被获知的账户信息获取答案的安全问题,进行身份验证。
进一步地,在本申请提供的另一实施例中,由于在本申请实施例步骤S103中,该服务器可以确定该待验证账户对应的已被获知的信息,所以在步骤S103中该服务器还可以确定该待验证账户中未被获知的信息。其中,该信息可以是该待验证账户的账户信息。
于是,在本申请步骤S104中,该服务器还可以从各安全问题中,确定正确答案与该未被获知的账户信息匹配的安全问题,并对该待验证账户进行身份验证。
具体的,首先,在本申请步骤S103中,该服务器可以使用公式
确定预设的账户信息与验证场景的对应关系,其中,K表示账户信息与验证场景的对应关系,S表示验证场景,i表示不同的验证场景的编号,S
i即表示第i个验证场景,I表示账户信息,I
j表示第j个账户信息,K(S
i,I
j)=1表示I
j账户信息在S
i验证场景下可获知,K(S
i,I
j)=0表示I
j账户信息在S
i验证场景下不可获知。
可以用公式
确定该待验证账户在预设时间段内的访问记录,其中,V表示被访问账户信息与该待验证账户的对应关系,U表示待验证账户,U
i表示第i个待验证账户,即本申请中的该待验证账户,T表示预设时间段,T
k表示第k种预设时间段,I表示账户信息,I
j表示第j个账户信息,V(U
i,T
k,I
j)=1表示I
j账户信息在T
k预设时间段内被U
i待验证账户访问过,V(U
i,T
k,I
j)=0表示I
j账户信息在T
k预设时间段内未被U
i待验证账户访问过,其中,该T
k与该S
i存在对应关系,并可由工作人员设置,其中,当该验证场景需要使用安全性较高的安全问题进行身份验证(即,正确答案已被获知的可能性低的安全问题),则该T
k的时长可以较长,反之亦然。
其次,在本申请步骤S104中,该服务器可以使用公式
确定预设的账户信息与安全问题的对应关系,R表示账户信息与安全问题的对应关系,Q表示安全问题,Q
i表示第i个安全问题,I表示账户信息,I
j表示第j个账户信息,R(Q
i,I
j)=1表示I
j账户信息与Q
i安全问题的正确答案相关联,R(Q
i,I
j)=0表示I
j账户信息与Q
i安全问题的正确答案不相关联,其中,账户信息与正确答案相关联,表示通过该账户信息可以确定或者推断出该正确答案。
最后,该服务器便可通过公式
针对每个安全问题,计算该安全问题的得分,其中,M表示待验证账户U
i的账户信息的总数量。当该得分为0时,即,A(U
i,S
j,Q
k)=0时,确定未被获知的账户信息与该安全问题的正确答案匹配,也就是说该服务器可确定该安全问题的正确答案已被获知的可能性较低,可用于身份验证。
于是,当该服务器确定可用于身份验证的各安全问题之后,便可使用任意一个或者多个该可用于身份验证的安全问题,对该待验证账户进行身份验证。
可见,该服务器还可采用正确答案与未被获知的账户信息相关联的各安全问题,对该待验证账户进行身份验证。通过本申请提供的方法,可根据用户的访问记录,以及各账户信息与安全问题的正确答案的是否相关联,确定当前时刻验证场景下,可用的安全问题。不再简单的只因为验证场景的不同,而确定选择的安全问题,同时基于用户的访问记录,使得安全问题的出题选择更加可信,在提高利用现有的安全问题的资源的同时,也提高了安全问题的准确性,进而使得身份验证的结果更加可信,并且提高了身份验证的效率。
需要说明的是,本申请实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤S101和步骤S102的执行主体可以为设备1,步骤S103的执行主体可以为设备2;又比如,步骤S101的执行主体可以为设备1,步骤S102和步骤S103的执行主体可以为设备2;等等,即,该服务器可以是由多台设备组成的分布式服务器。同时,本申请实施例所提供的方法的各步骤的执行主体也不限定为服务器,也可以是终端,该终端可以是手机、个人电脑、平板电脑等设备。
基于图1所示的身份验证过程,本申请实施例还对应提供一种身份验证的装置,如图2所示。
图2为本申请实施例提供的一种身份验证的装置的结构示意图,包括:
第一确定模块201,确定所述待验证账户当前对应的验证场景;
第二确定模块202,根据所述验证场景,确定所述待验证账户中已被获知的信息,和/或未被获知的信息;
身份验证模块203,当确定已被获知的信息时,采用与所述已被获知的信息不相关联的安全问题对所述待验证账户进行身份验证,当确定未被获知的信息时,采用与所述未被获知的信息相关联的安全问题对所述待验证账户进行身份验证。
所述验证场景至少包括:登录的验证场景以及登录后的执行业务的验证场景。
所述第二确定模块202,根据预设的账户信息与验证场景的对应关系以及所述待验证账户的访问记录,确定与所述验证场景对应、且在预设的时间段内被访问过的账户信息,作为所述已被获知的信息,和/或确定与所述验证场景对应、且在预设的时间段内未被访问过的账户信息,作为所述未被获知的信息。
所述第二确定模块202,根据预设的验证场景与时间段的对应关系,确定所述验证场景对应的时间段,确定在所述验证场景对应的时间段内被访问过的账户信息,根据预设的验证场景与时间段的对应关系,确定所述验证场景对应的时间段,确定在所述验证场景对应的时间段内未被访问过的账户信息。
所述身份验证模块203,当确定已被获知的信息时,采用正确答案与所述已被获知的信息不匹配的安全问题对所述待验证账户进行身份验证,当确定未被获知的信息时,采用正确答案与所述未被获知的信息匹配的安全问题对所述待验证账户进行身份验证。
所述信息包括:与所述待验证账户对应的个人信息、所述待验证账户的行为日志。
具体的,上述如图2所示的身份验证的装置可以位于服务器中,该服务器具体可以是一台设备,也可以是由多台设备组成的系统,即,分布式服务器。
基于图1所示的身份验证过程,本申请实施例还对应提供另一种身份验证的装置,如图3所示。
图3为本申请实施例提供的一种身份验证的装置的结构示意图,包括:
确定模块301,确定待验证账户当前对应的验证场景;
打分模块302,针对预存的安全问题,根据公式
计算所述安全问题在所述验证场景中的得分A;
身份验证模块303,采用得分A不为零的安全问题,对所述待验证账户进行身份验证;
其中,Ij表示所述待验证账户中第j个账户信息,M表示所述待验证账户的账户信息总数量;当所述账户信息Ij与所述安全问题的正确答案不相关联时,R(Ij)=1,否则R(Ij)=0;当所述账户信息Ij在所述验证场景中不可获知时,K(Ij)=1,否则K(Ij)=0;当所述账户信息Ij在所述预设时间段内未被所述待验证账户访问过时,V(Ij)=1,否则V(Ij)=0。
另外,该公式
具体可如图1所示的身份验证的过程中的公式
公式R(I
j)、K(I
j)以及V(I
j)具体可分别如图1所示的身份验证的过程中的公式
以及
对于上述公式的具体说明以及计算过程本申请不再赘述。
具体的,上述如图3所示的身份验证的装置可以位于服务器中,该服务器具体可以是一台设备,也可以是由多台设备组成的系统,即,分布式服务器。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。