一种基于密文哈希检索的应用程序账户登录方法及系统与流程

文档序号:15151590发布日期:2018-08-10 21:09阅读:244来源:国知局

本发明涉及计算机科学中应用密码学领域,更具体地说,涉及一种基于密文哈希检索的应用程序账户登录方法及系统。



背景技术:

账户的密码信息进行安全、妥善地保管对个人的隐私保护起着十分重要的作用,而且密码管理长期以来都是系统安全的重中之重。大部分用户喜欢使用简单密码或者在不同网站上重复使用相同的密码,且未定期更换密码,这给用户的个人信息安全带来了潜在的风险。据国家网络安全宣传周启动仪式上发布的《网络安全意识调查报告》中显示,我国网民网络安全意识薄弱,网络基础技能不足,超七成被调查者存在多帐号使用同一密码的问题。调查还显示,定期更换密码的比例不足五分之一,有将近百分之二十的被调查者表示从来不更换自己的账户密码。在日常生活中需要输入密码的场景多种多样,在公开场合输入密码可能造成密码泄露的风险。

针对用户账户输入问题,传统的登录方式通常存在两种问题:1、用户需要记忆大量账户名和密码;2、用户需要在登录过程中手动录入;针对用户应用登录机制,传统的登录方式通常需要以下两种环节:1、用户通过输入账户名和密码直接登录;2、用户通过手势直接登录。

在传统的密码管理应用中,用户输入密码时首先需要打开密码管理应用查找对应应用的账户密码,然后通过短时间记忆方式或复制粘贴方式输入密码等。这些方式操作复杂,管理繁琐。



技术实现要素:

本发明针对现有技术的密码管理应用中,用户输入密码时首先需要打开密码管理应用查找对应应用的账户密码,然后通过短时间记忆方式或复制粘贴方式输入密码的方式所造成的操作复杂、管理繁琐的缺陷,利用sms4加密算法和hash算法等提出一种基于密文哈希检索的应用程序账户登录方法及系统。

根据本发明的其中一方面,本发明为解决其技术问题,提供的基于密文哈希检索的应用程序账户登录方法,采用一账户管理app对应用程序的账户进行登陆,该账户管理app具有一主密钥,所述应用程序账户登录方法包含如下步骤:

预先进行的账户信息处理步骤:响应用户在列表中的选择的应用程序与输入的对应的账户信息,将各个账户信息采分别用主密钥的hash值作为密钥并采用sms4算法进行加密,形成对应应用程序的账户信息加密数据包,将各个账户信息加密数据包与与之对应的应用程序名相关联的分别存储于数据库中;

预先进行的数据处理步骤:获取当前账户管理app所安装的移动通信终端的特征识别码,根据主密钥的hash值与移动通信终端的特征识别码计算出一杂凑值作为所述数据库的密码;

应用程序账户登录步骤:通过密码访问所述数据库,从所述数据库中获取与应用程序对应的账户信息加密数据包,解密加密包后获取账户信息来登陆应用程序。

在本发明的应用程序账户登录方法中,特征识别码为imec和/或mac地址码。

在本发明的应用程序账户登录方法中,在所述步骤账户信息处理步骤中,还包括预先进行的下述步骤:扫描出手机上系统应用以外的应用程序,显示出扫描出的应用程序的列表。

在本发明的应用程序账户登录方法中,应用程序账户登录步骤具体包括如下步骤:

显示出应用程序列表;

响应用户在应用程序列表中选取的欲登陆的应用程序名,获取当前移动通信终端的特征识别码以及当前账户管理app的hash值生成一杂凑值,比对应用程序账户登录步骤与数据处理步骤中的杂凑值,在二者一致的情况下访问所述数据库,否则不允许访问所述数据库,本次通过账户管理app进行登陆应用程序失败;

利用当前账户管理app的hash值以及sms4算法解密与用户选取的欲登陆的应用程序名对应的账户信息加密数据包,若解密成功,则利用解密出的账户信息登陆用户欲登陆的应用程序,否则本次通过账户管理app进行登陆应用程序失败。

在本发明的应用程序账户登录方法中,所述移动通信终端为安卓手机,所述应用程序账户登录方法通过向输入法传递一个状态和当前需要登录的账户信息,使输入法响应所述状态而调用输入法将解析后的账户信息输入到相应的应用程序。

根据本发明的另一方面,本发明为解决其技术问题,还提供了一种基于密文哈希检索的应用程序账户登录系统,采用一账户管理app对应用程序的账户进行登陆,其特征在于,该账户管理app具有一主密钥,所述应用程序账户登录系统包含如下模块:

预先进行的账户信息处理模块,用于响应用户在列表中的选择的应用程序与输入的对应的账户信息,将各个账户信息采分别用主密钥的hash值作为密钥并采用sms4算法进行加密,形成对应应用程序的账户信息加密数据包,将各个账户信息加密数据包与与之对应的应用程序名相关联的分别存储于数据库中;

预先进行的数据处理模块,用于获取当前账户管理app所安装的移动通信终端的特征识别码,根据主密钥的hash值与移动通信终端的特征识别码计算出一杂凑值作为所述数据库的密码;

应用程序账户登录模块,用于通过密码访问所述数据库,从所述数据库中获取与应用程序对应的账户信息加密数据包,解密加密包后获取账户信息来登陆应用程序。

在本发明的应用程序账户登录系统中,特征识别码为imec和/或mac地址码。

在本发明的应用程序账户登录系统中,在所述账户信息处理模块中,还包括预先进行的用于扫描出手机上系统应用以外的应用程序,显示出扫描出的应用程序的列表的子模块。

在本发明的应用程序账户登录系统中,应用程序账户登录模块具体包括如下子模块:

显示子模块,用于显示出应用程序列表;

数据库访问处理子模块,用于响应用户在应用程序列表中选取的欲登陆的应用程序名,获取当前移动通信终端的特征识别码以及当前账户管理app的hash值生成一杂凑值,比对应用程序账户登录模块与数据处理模块中的杂凑值,在二者一致的情况下访问所述数据库,否则不允许访问所述数据库,本次通过账户管理app进行登陆应用程序失败;

账户信息登陆处理子模块,用于利用当前账户管理app的hash值以及sms4算法解密与用户选取的欲登陆的应用程序名对应的账户信息加密数据包,若解密成功,则利用解密出的账户信息登陆用户欲登陆的应用程序,否则本次通过账户管理app进行登陆应用程序失败。

在本发明的应用程序账户登录系统中,移动通信终端为安卓手机,所述应用程序账户登录系统通过向输入法传递一个状态和当前需要登录的账户信息,使输入法响应所述状态而调用输入法将解析后的账户信息输入到相应的应用程序。

本发明公开了一种基于密文哈希检索的应用程序账户登录方法与系统,利用sqlcipher技术对手机登录过程中的账户名和密码等信息进行加密,并与手机识别码绑定建立账户库,实现登陆时账户和口令自动分类检索和自动录入功能;用户依据应用分类保存账户信息,通过sms4加密算法和hash算法将账户信息通过手机特征码、主密钥相关信息加密后保存于数据库中,实现了数据和数据库双重加密;在进入系统开启应用登陆模式后,该功能会常驻任务栏,当用户点击任务栏中自动录入功能后,系统后台计算检索数据字符组合密文的hash值,将其合并为字符串,然后用该字符串检索出相应的账户信息,实现密文哈希检索账户登录,本发明操作简单,管理方便,且具有很高的安全性。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明的应用程序的账户登录方法一实施例的流程图;

图2是模糊检索功能过程图;

图3是本发明中的输入法生命周期示意图;

图4是本发明的密码胶囊的主界面示意图;

图5是本发明的扫描应用程序的列表示意图;

图6是本发明的添加账户信息的示意图;

图7是本发明的修改帐号密码的示意图;

图8是本发明的显示账户信息的示意图;

图9是本发明的应用程序的登录示意图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。

参考图1,其为本发明的应用程序的账户登陆方法一实施例的流程图,具有加密步骤sa、sb及sc,以及解密步骤s1、s2及s3,步骤sa、sb对应预先进行的账户信息处理步骤,sc预先进行的数据处理步骤,s1、s2及s3对应应用程序账户登录步骤。本实施例以安卓手机为例进行说明,上述集成入一个专属app——密码胶囊中,但是本发明不限于安卓手机。密码胶囊具有一主密钥,主密钥可以人为设置改动。

加密步骤:

sa、将登陆应用程序所需的账户信息加密,账户信息为账户名以及账户密码。用户先打开专属app,进入添加账户界面,通过packagemanager扫描本机中的应用程序写入spinner列表,spinner列表中的程序目录被显示于手机显示器上,用户选择某个应用程序,并在该应用程序对应的输入框中输入账户名以及账户密码,再选择确认录入账户信息。然后,本方法采用sqlcipher技术,利用sms4加密算法对录入的账户名以及账户密码进行加密,加密时是以主密钥的hash值作为密钥。对于其他各个应用程序也可以采用上述方法进行信息的录入。

sb、对个各个账户信息,分别形成一个账户信息加密数据包,将各个账户信息加密数据包与与之对应的应用程序名相关联的分别存储于数据库中。在本实施例中,上述数据库为android数据库accountinformationdatabase。

sc、获取当前账户管理app所安装的手机的特征识别码,根据主密钥的hash值与移动通信终端的特征识别码计算出一杂凑值作为所述数据库的密码。特征识别码可以是手机的imei、mac甚至是手机号码等中任意一种或者多种的组合。

解密步骤:

加密步骤完成后,密码胶囊可以在后台进行运行,在用户打开某个应用程序进行账户登陆时,采用下述步骤进行登陆,具体的包含如下步骤:

s1、显示出应用程序列表。

s2、响应用户在应用程序列表中选取的欲登陆的应用程序名,获取当前移动通信终端的特征识别码以及当前账户管理app的hash值生成一杂凑值,比对应用程序账户登录步骤与数据处理步骤中的杂凑值,在二者一致的情况下访问所述数据库,否则不允许访问所述数据库,本次通过账户管理app进行登陆应用程序失败;

s3、利用当前账户管理app的hash值以及sms4算法解密与用户选取的欲登陆的应用程序名对应的账户信息加密数据包,若解密成功,则利用解密出的账户信息登陆用户欲登陆的应用程序,否则本次通过账户管理app进行登陆应用程序失败。

利用解密出的账户信息登陆用户欲登陆的应用程序具体包括:通过解析解密后的账户信息,调用输入法将解析后的账户信息输入到相应的应用程序中。具体的,通过sharedpreferences对象向输入法传递一个状态和当前需要登录的账户信息,使输入法响应所述状态而调用输入法将解析后的账户信息输入到相应的应用程序。在本实施例中,可以将账户信息输入至应用程序的登陆输入栏中全部或者部分进行明文显示。在本发明的另一实施例中,在进行应用程序的登陆时,根据账户信息与预设标识之间的对应关系,在运行终端的显示单元上显示应用程序的账户信息的对应的预设标识而不明文显示账户信息,直接利用相应的解析后的账户信息来登陆应用程序。在进行应用程序的登陆时,将数据库各个应用程序的账户信息以及应用程序识别标识对应的显示出来,以供用户选择,若该应用程序对应有多个账户,则将多个账户的目录自动或者响应用户的操作全部显示出来以供用户选择。若只存在一个账户,则既可以将该账户的目录显示出来,也可以直接跳过目录的显示步骤,而直接自动登录。该目录在一些实施例中直接是账户名,在另一些实施例中为预设标识。预设的标识可以是“第一账户”、“第二账户”等。在账户目录的显示时,本实施例在获知用户需要选择账户信息登录后,通过notification跳转到账户列表,并响应用户点击的相应账户的操作,完成选择账户操作,向应用程序写入账户信息并退出当前activity。

图2给出了模糊检索过程图,其检索机制为:分别求出检索数据字符组合密文的hash值h,将其合并为字符串,然后用该字符串检索出相应的账户信息。

图3给出了输入法生命周期图,是键盘登录模块的核心,主要功能是解析存储有账户信息的数据和数据库,借助输入法将解析后的账户信息输入到相应的应用中,实现了一键快速登录。

本方法在步骤sc进行信息保存时,可以将账户信息按应用程序的不同进行分类存储,在登陆应用程序时,能够自动检测需要登录的应用程序下的账户信息,推荐该应用相关账户信息,如此方面查找。优选的,本方法扫描出安装在本地的非系统应用,并全部加入spinner列表,可以通过packagemanager来获取已安装的应用程序识别标识。通过android.content.pm.applicationinfo类中flag_system标志来判断该应用是否为系统应用,然后筛选出扫描出的非系统应用。

在本发明的另一实施例中,当用户在登陆应用程序需要输入密码时,用户可以切换到本应用的专用输入法,并开启本方法的账户登录功能,用户打开需要登录的用户界面,然后点击任务栏账户登录,本应用会自动检测当前应用,然后显示出该应用所对应的全部账户信息,用户选择后自动返回需要登录的应用,进行自动录入登陆信息。

当用户选择账户信息登陆时,应用通过sharedpreferences对象向输入法传递一个状态和当前需要登录的账户名和包名,使输入法进入自动录入模式,并自动录入账户名,当输入法再一次获得foucs时,通过账户名和包名到数据库检索密码并自动录入。

可通过该生命周期可看出当执行到onstartinputview函数时,开始输入,之前的函数是对输入法的组件初始化,故本应用在onstartinputview中通过调用onkey函数实现自动录入功能。

为了方便对本发明进行更好的理解,本发明特提供附图4-9,其中密码胶囊即为本发明的方法所形成的专属app,图4是本发明的密码胶囊的主界面示意图,图5是本发明的扫描应用程序的列表示意图,对应步骤sa,图6是本发明的添加账户信息的示意图,对应步骤sa,图7是本发明的修改帐号密码的示意图,图8是本发明的显示账户信息的示意图,图9是本发明的应用程序的登陆示意图。

本发明提出了一应用程序的登陆方法,可以有效避免登录过程中的账户名密码等重要信息的泄漏,也可以降低登录信息管理的困难性和用户大量记忆账户名密码的问题;具有明显的实用性和良好的灵活性和可扩展性,本发明实用高效的性能蕴含着巨大的市场与应用前景。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1