CN111475798A - 多App单点登录的方法、装置、设备和存储介质 - Google Patents
多App单点登录的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111475798A CN111475798A CN202010148789.0A CN202010148789A CN111475798A CN 111475798 A CN111475798 A CN 111475798A CN 202010148789 A CN202010148789 A CN 202010148789A CN 111475798 A CN111475798 A CN 111475798A
- Authority
- CN
- China
- Prior art keywords
- app
- bit
- login
- ciphertext
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/41—User authentication where a single sign-on provides access to a plurality of computers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请中提供的多App单点登录方法、装置、设备和存储介质,获取App在终端登录成功后的token文本;从token文本中获取数字签名;根据登录时间计算数值T,通过预设加密算法将数值T转换成密钥K,对所述数字签名进行加密得到密文A;将密文A与App关联存入所述终端的本地共享数据库;并对本地共享数据库中其它应用进行密文登录启动关联;当通过单点登录启动App时,获取当前时间t1,根据t1计算密钥K1,若K1=K,对所述密文A进行解密后得到数字签名自动登录App以及关联应用;若K1≠K;则提示重新输入账号密码登录。本申请提出的多App单点登录方法,实现了移动终端跨App服务商的单点登录,也解决了用户登录App时频繁输入账号和密码的麻烦,为用户带来了便利。
Description
技术领域
本申请涉及信息处理技术领域,特别涉及一种多App单点登录的方法、装置、设备和存储介质。
背景技术
传统单点登录(Single Sign On)是在同一个服务商的同一系统中的多个网页应用中,用户只需要登录一次就可以访问所有相互信任的网页应用。随着信息技术的发展,移动终端智能化程度越来越高,常用App越来越多,这些App分属不同的服务商,为了各App的使用安全,各App都需要通过必要的身份验证才有使用权限。在这种情况下,用户会经常在不同的应用间穿梭进行登录验证,需要多次输入用户名、密码。用户频繁进行登录验证,容易导致用户名、密码混乱现象出现,影响用户正常使用,同时留下安全隐患。因此,亟需一种具有安全性的,能在移动终端跨服务商的单点登录方法。
发明内容
本申请的主要目的为提供一种多App单点登录方法,旨在解决移动终端上无可用跨服务商单点登录的问题。
为实现上述目的,本申请提供了一种多App单点登录方法,包括:
获取第一App在终端登录成功后服务器端签发的token文本;
从token文本中获取用于登录验证的数字签名,并获取登录时间t0;
根据登录时间t0,通过时间戳mod算法计算数值T;
通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A;
将所述密文A与所述第一App关联生成关系表并存入预设的App Group共享数据库;
将所述第一App与所述App Group共享数据库中的其他App进行密文启动关联;其中,其他App与第一App具有相同加密过程;
当通过单点登录启动App Group共享数据库中任意的App时,获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间;根据当前登录间隔时间,利用所述时间戳mod算法,以及所述预设加密算法计算得到密钥K1;比较所述K1和K,并根据比较结果执行预设动作,其中,若K1=K,则对所述密文A进行解密得到所述数字签名,以所述数字签名自动登录第一App,并解密登录所述App Group共享数据库中与所述第一App具有启动关联关系的其他App;若K1≠K;则提示重新输入账号密码登录。
进一步地,所述通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A的步骤,包括:
将所述数值T转换生成128位字符;
通过哈希算法对所述128位字符进行字符转换,得到256位新字符组成的密钥K;
利用所述密钥K,通过AES256算法对所述数字签名进行加密,得到密文A。
进一步地,所述将所述数值T转换生成128位字符的步骤包括:
在所述数值T后填充一个1和N个0,以及一个以64位二进制表示的所述数值T的组合信息长度,N满足:填充后的信息字节长度=N*512+448+64=(N+1)*512;其中,N为自然数;
对填充后的信息进行32位逐位运算,所述逐位运算算法如下:
F(X,Y,Z)=(~X&Y)|(X&(~Z))=a
G(X,Y,Z)=(X&Z)|(Y&Z)=b
H(X,Y,Z)=X^Y^Z=c
I(X,Y,Z)=Y^(X|(~Z))=d
其中,X、Y、Z为填充后的数值T对应的32位子分组;
进一步地,所述token文本为用户最近一次通过输入账号、密码的形式成功登录App时服务器端签发的token文本。
进一步地,所述获取第一App在终端登录成功后服务器端签发的token文本的步骤之前,还包括:
在本地建立App Group共享数据库;以及设定App的有效登录时间t。
本申请同时提出一种多App单点登录装置,包括:
第一获取单元,用于获取第一App在终端登录成功后服务器端签发的token文本;
第二获取单元,用于从token文本中获取用于登录验证的数字签名,并获取登录时间t0;
第一计算单元,用于根据登录时间t0,通过时间戳mod算法计算数值T;
第二计算单元,用于通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A;
存储单元,用于将所述密文A与所述第一App关联生成关系表并存入预设的AppGroup共享数据库;
关联单元,用于将所述第一App与所述App Group共享数据库中的其他App进行密文启动关联;其中,其他App与第一App具有相同加密过程;
登录单元,用于当通过单点登录启动App Group共享数据库中任意的App时,获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间;根据当前登录间隔时间,利用所述时间戳mod算法,以及所述预设加密算法计算得到密钥K1;比较所述K1和K,并根据比较结果执行预设动作,其中,若K1=K,则对所述密文A进行解密得到所述数字签名,以所述数字签名自动登录第一App,并解密登录所述App Group共享数据库中与所述第一App具有启动关联关系的其他App;若K1≠K;则提示重新输入账号密码登录。
进一步地,所述第二计算单元,还用于:
将所述数值T转换生成128位字符;
通过哈希算法对所述128位字符进行字符转换,得到256位新字符组成的密钥K;
利用所述密钥K,通过AES256算法对所述数字签名进行加密,得到密文A。
进一步地,所述第二计算单元,还用于:
在所述数值T后填充一个1和N个0,以及一个以64位二进制表示的所述数值T的组合信息长度,N满足:填充后的信息字节长度=N*512+448+64=(N+1)*512;其中,N为自然数;
对填充后的信息进行32位逐位运算,所述逐位运算算法如下:
F(X,Y,Z)=(~X&Y)|(X&(~Z))=a
G(X,Y,Z)=(X&Z)|(Y&Z)=b
H(X,Y,Z)=X^Y^Z=c
I(X,Y,Z)=Y^(X|(~Z))=d
其中,X、Y、Z为填充后的数值T对应的32位子分组;
本申请同时提出一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请同时提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
获取第一App在终端登录成功后服务器端签发的token文本;从token文本中获取用于登录验证的数字签名,并获取登录时间t0;根据登录时间t0,通过时间戳mod算法计算数值T;通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A;将所述密文A与所述第一App关联生成关系表并存入预设的App Group共享数据库;将所述第一App与所述App Group共享数据库中的其他App进行密文启动关联;其中,其他App与第一App具有相同加密过程;当通过单点登录启动AppGroup共享数据库中任意的App时,获取当前时间t1,根据所述当前时间t1确定登录间隔时间,并计算密钥K1,若K1=K,则对所述密文A进行解密,使用解密后得到数字签名自动登录第一App,同时解密登录所述App Group共享数据库中与所述第一App具有启动关联关系的其他App;若K1≠K;则提示重新输入账号密码登录。本申请提出的多App单点登录方法,通过对称加密算法,实现了移动终端App跨服务商的单点登录,保证终端系统安全性和稳定性的同时,方便用户帐号管理,也解决了用户登录App时频繁输入账号和密码的麻烦,为用户带来了便利。
附图说明
图1是本申请一实施例中关联图谱评估风险传导的方法步骤示意图;
图2是本申请一实施例中关联图谱评估风险传导的装置示意图;
图3是本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请提出一种多App单点登录方法,包括:
S1、获取第一App在终端登录成功后服务器端签发的token文本;
S2、从token文本中获取用于登录验证的数字签名,并获取登录时间t0;
S3、根据登录时间t0,通过时间戳mod算法计算数值T;
S4、通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A;
S5、将所述密文A与所述第一App关联生成关系表并存入预设的AppGroup共享数据库;
S6、将所述第一App与所述App Group共享数据库中的其他App进行密文启动关联;其中,其他App与第一App具有相同加密过程;
S7、当通过单点登录启动App Group共享数据库中任意的App时,获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间;根据当前登录间隔时间,利用所述时间戳mod算法,以及所述预设加密算法计算得到密钥K1;比较所述K1和K,并根据比较结果执行预设动作,其中,若K1=K,则对所述密文A进行解密得到所述数字签名,以所述数字签名自动登录第一App,并解密登录所述App Group共享数据库中与所述第一App具有启动关联关系的其他App;若K1≠K;则提示重新输入账号密码登录。
如上述步骤S1所述,上述token文本指的是在终端上通过输入用户名、密码的方式成功的登录某一应用之后,应用均会从服务器端返回一串字符串,记录所返回的字符串的文本即token文本。一般的,token由uid+time+sign[+固定参数]组成;uid:用户唯一身份标识、time:当前时间的时间戳、sign:签名。
如上述步骤S2所述,上述从token文本中获取用于登录验证的数字签名,相当于一个临时的身份标识信息。获得该数字签名之后,在登录App可以直接验证此数字签名,验证通过之后,即完成了登录。验证数字签名的登录方式和输入了用户名、密码完成登录的方式的结果是一样的。上述登录时间t0用于记录上述“临时的身份标识信息”使用的起始时间,若时间达到某一条件之后,“临时的身份标识信息”将会失效,所以只是临时的而不是永久的。
如上述步骤S3所述,上述时间戳算法指的是一种取模运算,数值T的取值与有效登录时间t有关以及登录的间隔时间有关。具体的,时间戳mod算法为T=time mod t;其中,time为登录间隔时间,t为有效登录时间。在本实施例中,T=time mod t为取模运算,t与登录时间t0相关,通过取模,即可得知time是否在有效登录时间内,本申请方案中定义取模运算time在有效登录时间内时T的取值相同。
如上述步骤S4所述,上述预设加密算法包含多个阶段,预设加密算法是多种算法的结合。其中,将所述数值T转换成密钥K的阶段,可以是对称算法,也可以是非对称算法,出于安全性考虑,此阶段优选非对称算法;对所述数字签名进行加密得到密文A的阶段则一定是对称算法,否则无法进行解密,上述选择,兼顾用户使用的便捷性的同时,保证安全性。
如上述步骤S5、S6所述,上述将所述密文A与所述第一App关联生成关系表并存入预设的App Group共享数据库,指的是,密文A与第一App的关联关系会存入表,再存入AppGroup共享数据库,保证在后续解密的过程中,第一App对应的数字签名将会从密文A中解密出来。进一步的,对于App Group共享数据库中的其他App,也有相似且对应的密文关系,以确保每一个App对应的密文解密出来的数字签名,都是用于该App登录的数字签名。上述密文启动关联,指的是App Group共享数据库中所有App都相互关联,当App Group共享数据库中任意App通过单点登录启动时,密文启动关联的App也会一起启动,并且在满足预设登录条件后都会通过解密App对应的数字签名,以数字签名进行自动登录。方便用户帐号管理,提高系统的便捷性,为用户带来了便利。
如上述步骤S7所述,上述获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间的步骤,包括:获取本次登录的App的登录日志,从登录日志中获取上一次登录时间t2;所述当前登录间隔时间为:t1-t2。利用结果t1-t2通过预设的时间戳mod算法,计算密钥K1,若计算出的K1,若K1=K,说明计算的密钥与预存的密钥相同,通过密钥K1对所述密文A进行解密后可以得到数字签名,该数字签名可用于自动登录第一App,由于其他App与第一App具有相同加密过程,App Group共享数据库中存储了App与各自密文的对应关系,密钥K1同样可以解密得到其他App对应的数字签名,其他的App通过各自对应的数字签名进行登录;若K1≠K,则无法解密出数字签名,不能自动登录,提示重新输入账号密码登录。本实施例中的加密和解密的运用,提高系统安全性。
在一个实施例中,所述通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A的步骤,包括:
将所述数值T转换生成128位字符;
通过哈希算法对所述128位字符进行字符转换,得到256位新字符组成的密钥K;
利用所述密钥K,通过AES256算法对所述数字签名进行加密,得到密文A。
在本实施例中,上述数据填充并加密指的是,由于所述数值T的拼接组合长度并不能达到128位字符,因此通过数据填充的方式,将其补至128位字符,再进行加密,加密时更加的安全。上述哈希算法可以将数据通过散列算法变换成固定长度的输出,在本实施例中,通过哈希算法将上述128位字符通过散列算法变换成256位新字符,上述256位新字符即组成的密钥K。计算密钥K的这一过程是不可逆的,保证密钥K的唯一性。上述AES256算法是一种对称加密算法,也就是加密和解密用相同的密钥。举例而言,设AES加密函数为E,则A=E(K,P),其中P为明文(例如明文为数字签名),K为密钥,A为密文。也就是说,把明文P和密钥K作为加密函数的参数输入,则加密函数E会输出密文A;设AES解密函数为D,则P=D(K,A),其中A为密文,K为密钥,P为明文。也就是说,把密文C和密钥K作为解密函数的参数输入,则解密函数会输出明文P(即解密出数字签名)。
在一个实施例中,所述将所述数值T转换生成128位字符的步骤包括:
在所述数值T后填充一个1和N个0,以及一个以64位二进制表示的所述数值T的组合信息长度,N满足:填充后的信息字节长度=N*512+448+64=(N+1)*512;其中,N为自然数;
对填充后的信息进行32位逐位运算,所述逐位运算算法如下:
F(X,Y,Z)=(~X&Y)|(X&(~Z))=a
G(X,Y,Z)=(X&Z)|(Y&Z)=b
H(X,Y,Z)=X^Y^Z=c
I(X,Y,Z)=Y^(X|(~Z))=d
其中,X、Y、Z为填充后的数值T对应的32位子分组;
在本实施例中,N为自然数。上述逐位运算式中X、Y、Z为填充后的数值T对应的32位子分组,指的是填充后的数值T是32位的倍数,将数值T按照32位长度拆分,每一个32位长度即一个子分组,子分组经过逻辑运算之后,长度不变。定义4个32位种子常量:A,B,C,D,例如,A=0x1234567,B=0x12abcdef,C=0xfedcba98,D=0x9876543,种子常量影响密钥结果。上述&为与运算符、|为或运算符、^为异或运算符、~为非运算符。上述对填充后的信息进行32位逐位运算,其运算结果a,b,c,d均为32位字符。其与种子常量相加后,仍然为32位字符,最后从高位至低位输出即为所得到的128位字符。
在一个实施例中,所述获取App在终端登录成功后服务器端签发的token文本为用户最近一次通过输入账号、密码的形式成功登录App时服务器端签发的token文本。
在本实施例中,出于安全性方面的考虑,在超过有效登录时间之后,用户需要重新输入账号密码才能进行App登录,而服务器方也有可能出现版本更新等影响,这些未知事件有可能会造成token文本的改变,因此,以用户最近一次通过输入账号、密码的形式成功登录App时服务器端签发的token文本是合适的。当用户多次使用账号密码登录时,即本地数据库可能会存有多个token文本,只保留时间层面上最新的token文本。
在一个实施例中,所述获取第一App在终端登录成功后服务器端签发的token文本的步骤之前,还包括:
在本地建立App Group共享数据库;以及设定App的有效登录时间t。
在本实施例中,上述App Group共享数据库指的是可以按照预设规则对终端应用的数据进行分组,并且存储于本地的数据库。例如,终端上有App1、App2、App3、App4、App5、App6、App7几个应用,可以将App1、App2、App3各自与密文关联并且存储于本地的数据库作为一组,也可以是将App4、App5、App6、App7各自与密文关联并且存储于本地的数据库作为一组等等。App有效登录时间t指的是一个时间段,具体指的是App通过账号、密码或者单点登录成功的登录了之后的时间节点算起,一直到经过时间t后用记没有再次登录App。
参照图2,本申请提出一种多App单点登录装置,包括:
第一获取单元,用于获取第一App在终端登录成功后服务器端签发的token文本;
第二获取单元,用于从token文本中获取用于登录验证的数字签名,并获取登录时间t0;
第一计算单元,用于根据登录时间t0,通过时间戳mod算法计算数值T;
第二计算单元,用于通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A;
存储单元,用于将所述密文A与所述第一App关联生成关系表并存入预设的AppGroup共享数据库;
关联单元,用于将所述第一App与所述App Group共享数据库中的其他App进行密文启动关联;其中,其他App与第一App具有相同加密过程;
登录单元,用于当通过单点登录启动App Group共享数据库中任意的App时,获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间;根据当前登录间隔时间,利用所述时间戳mod算法,以及所述预设加密算法计算得到密钥K1;比较所述K1和K,并根据比较结果执行预设动作,其中,若K1=K,则对所述密文A进行解密得到所述数字签名,以所述数字签名自动登录第一App,并解密登录所述App Group共享数据库中与所述第一App具有启动关联关系的其他App;若K1≠K;则提示重新输入账号密码登录。
在第一获取单元中,上述token文本指的是在终端上通过输入用户名、密码的方式成功的登录某一应用之后,应用均会从服务器端返回一串字符串,记录所返回的字符串的文本即token文本。一般的,token由uid+time+sign[+固定参数]组成;uid:用户唯一身份标识、time:当前时间的时间戳、sign:签名。
在第二获取单元中,上述从token文本中获取用于登录验证的数字签名,相当于一个临时的身份标识信息。获得该数字签名之后,在登录App可以直接验证此数字签名,验证通过之后,即完成了登录。验证数字签名的登录方式和输入了用户名、密码完成登录的方式的结果是一样的。上述登录时间t0用于记录上述“临时的身份标识信息”使用的起始时间,若时间达到某一条件之后,“临时的身份标识信息”将会失效,所以只是临时的而不是永久的。
在第一计算单元中,上述时间戳算法指的是一种取模运算,数值T的取值与有效登录时间t有关以及登录的间隔时间有关。具体的,时间戳mod算法为T=time mod t;其中,time为登录间隔时间,t为有效登录时间。在本实施例中,T=time mod t为取模运算,t与登录时间t0相关,通过取模,即可得知time是否在有效登录时间内,本申请方案中定义取模运算time在有效登录时间内时T的取值相同。
在第二计算单元中,上述预设加密算法包含多个阶段,预设加密算法是多种算法的结合。其中,将所述数值T转换成密钥K的阶段,可以是对称算法,也可以是非对称算法,出于安全性考虑,此阶段优选非对称算法;对所述数字签名进行加密得到密文A的阶段则一定是对称算法,否则无法进行解密,上述选择,兼顾用户使用的便捷性的同时,保证安全性。
在存储单元和关联单元中,上述将所述密文A与所述第一App关联生成关系表并存入预设的App Group共享数据库,指的是,密文A与第一App的关联关系会存入表,再存入AppGroup共享数据库,保证在后续解密的过程中,第一App对应的数字签名将会从密文A中解密出来。进一步的,对于App Group共享数据库中的其他App,也有相似且对应的密文关系,以确保每一个App对应的密文解密出来的数字签名,都是用于该App登录的数字签名。上述密文启动关联,指的是App Group共享数据库中所有App都相互关联,当App Group共享数据库中任意App通过单点登录启动时,密文启动关联的App也会一起启动,并且在满足预设登录条件后都会通过解密App对应的数字签名,以数字签名进行自动登录。方便用户帐号管理,提高系统的便捷性,为用户带来了便利。
在登录单元中,上述获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间的步骤,包括:获取本次登录的App的登录日志,从登录日志中获取上一次登录时间t2;所述当前登录间隔时间为:t1-t2。利用结果t1-t2通过预设的时间戳mod算法,计算密钥K1,若计算出的K1,若K1=K,说明计算的密钥与预存的密钥相同,通过密钥K1对所述密文A进行解密后得到数字签名,该数字签名可用于自动登录第一App,由于其他App与第一App具有相同加密过程,App Group共享数据库中存储了App与各自密文的对应关系,密钥K1同样可以解密得到其他App对应的数字签名,其他的App通过各自对应的数字签名进行登录;若K1≠K,则无法解密出数字签名,不能自动登录,提示重新输入账号密码登录。本实施例中的加密和解密的运用,提高系统安全性。
在一个实施例中,所述第二计算单元,还用于:
将所述数值T转换生成128位字符;
通过哈希算法对所述128位字符进行字符转换,得到256位新字符组成的密钥K;
利用所述密钥K,通过AES256算法对所述数字签名进行加密,得到密文A。
在本实施例中,上述第二计算单元中数据填充并加密指的是,由于所述数值T的拼接组合长度并不能达到128位字符,因此通过数据填充的方式,将其补至128位字符,再进行加密,加密时更加的安全。上述哈希算法可以将数据通过散列算法变换成固定长度的输出,在本实施例中,通过哈希算法将上述128位字符通过散列算法变换成256位新字符,上述256位新字符即组成的密钥K。计算密钥K的这一过程是不可逆的,保证密钥K的唯一性。上述AES256算法是一种对称加密算法,也就是加密和解密用相同的密钥。举例而言,设AES加密函数为E,则A=E(K,P),其中P为明文(例如明文为数字签名),K为密钥,A为密文。也就是说,把明文P和密钥K作为加密函数的参数输入,则加密函数E会输出密文A;设AES解密函数为D,则P=D(K,A),其中A为密文,K为密钥,P为明文。也就是说,把密文C和密钥K作为解密函数的参数输入,则解密函数会输出明文P(即解密出数字签名)。
在一个实施例中,所述第二计算单元,还用于:
在所述数值T后填充一个1和N个0,以及一个以64位二进制表示的所述数值T的组合信息长度,N满足:填充后的信息字节长度=N*512+448+64=(N+1)*512;其中,N为自然数;
对填充后的信息进行32位逐位运算,所述逐位运算算法如下:
F(X,Y,Z)=(~X&Y)|(X&(~Z))=a
G(X,Y,Z)=(X&Z)|(Y&Z)=b
H(X,Y,Z)=X^Y^Z=c
I(X,Y,Z)=Y^(X|(~Z))=d
其中,X、Y、Z为填充后的数值T对应的32位子分组;
在本实施例中,上述第二计算单元中N为自然数。上述逐位运算式中X、Y、Z为填充后的数值T对应的32位子分组,指的是填充后的数值T是32位的倍数,将数值T按照32位长度拆分,每一个32位长度即一个子分组,子分组经过逻辑运算之后,长度不变。定义4个32位种子常量:A,B,C,D,例如,A=0x1234567,B=0x12abcdef,C=0xfedcba98,D=0x9876543,种子常量影响密钥结果。上述&为与运算符、|为或运算符、^为异或运算符、~为非运算符。上述对填充后的信息进行32位逐位运算,其运算结果a,b,c,d均为32位字符。其与种子常量相加后,仍然为32位字符,最后从高位至低位输出即为所得到的128位字符。另外,可以使用MD算法、SHA算法将数值T转换成128位字符。
在一个实施例中,第二获取单元中获取App在终端登录成功后服务器端签发的token文本为用户最近一次通过输入账号、密码的形式成功登录App时服务器端签发的token文本。
第二获取单元中,出于安全性方面的考虑,在超过有效登录时间之后,用户需要重新输入账号密码才能进行App登录,而服务器方也有可能出现版本更新等影响,这些未知事件有可能会造成token文本的改变,因此,以用户最近一次通过输入账号、密码的形式成功登录App时服务器端签发的token文本是合适的。当用户多次使用账号密码登录时,即本地数据库可能会存有多个token文本,只保留时间层面上最新的token文本。
在一个实施例中,多App单点登录装置,还包括:
创建单元,用于在本地建立App Group共享数据库;以及设定App的有效登录时间t。
在创建单元中,上述App Group共享数据库指的是可以按照预设规则对终端应用的数据进行分组,并且存储于本地的数据库。例如,终端上有App1、App2、App3、App4、App5、App6、App7几个应用,可以将App1、App2、App3各自与密文关联并且存储于本地的数据库作为一组,也可以是将App4、App5、App6、App7各自与密文关联并且存储于本地的数据库作为一组等等。App有效登录时间t指的是一个时间段,具体指的是App通过账号、密码或者单点登录成功的登录了之后的时间节点算起,一直到经过时间t后用记没有再次登录App。
参照图3,本申请实施例中还提出一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储多App单点登录方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多App单点登录方法,包括:
获取第一App在终端登录成功后服务器端签发的token文本;
从token文本中获取用于登录验证的数字签名,并获取登录时间t0;
根据登录时间t0,通过时间戳mod算法计算数值T;
通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A;
将所述密文A与所述第一App关联生成关系表并存入预设的App Group共享数据库;
将所述第一App与所述App Group共享数据库中的其他App进行密文启动关联;其中,其他App与第一App具有相同加密过程;
当通过单点登录启动App Group共享数据库中任意的App时,获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间;根据当前登录间隔时间,利用所述时间戳mod算法,以及所述预设加密算法计算得到密钥K1;比较所述K1和K,并根据比较结果执行预设动作,其中,若K1=K,则对所述密文A进行解密得到所述数字签名,以所述数字签名自动登录第一App,并解密登录所述App Group共享数据库中与所述第一App具有启动关联关系的其他App;若K1≠K;则提示重新输入账号密码登录。
进一步地,所述通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A的步骤,包括:
将所述数值T转换生成128位字符;
通过哈希算法对所述128位字符进行字符转换,得到256位新字符组成的密钥K;
利用所述密钥K,通过AES256算法对所述数字签名进行加密,得到密文A。
进一步地,所述将所述数值T转换生成128位字符的步骤包括:
在所述数值T后填充一个1和N个0,以及一个以64位二进制表示的所述数值T的组合信息长度,N满足:填充后的信息字节长度=N*512+448+64=(N+1)*512;其中,N为自然数;
对填充后的信息进行32位逐位运算,所述逐位运算算法如下:
F(X,Y,Z)=(~X&Y)|(X&(~Z))=a
G(X,Y,Z)=(X&Z)|(Y&Z)=b
H(X,Y,Z)=X^Y^Z=c
I(X,Y,Z)=Y^(X|(~Z))=d
其中,X、Y、Z为填充后的数值T对应的32位子分组;
进一步地,所述获取第一App在终端登录成功后服务器端签发的token文本为用户最近一次通过输入账号、密码的形式成功登录App时服务器端签发的token文本。
进一步地,所述获取第一App在终端登录成功后服务器端签发的token文本的步骤之前,还包括:
在本地建立App Group共享数据库;以及设定App的有效登录时间t。
本申请一实施例还提出一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种多App单点登录方法,包括:
获取第一App在终端登录成功后服务器端签发的token文本;
从token文本中获取用于登录验证的数字签名,并获取登录时间t0;
根据登录时间t0,通过时间戳mod算法计算数值T;
通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A;
将所述密文A与所述第一App关联生成关系表并存入预设的App Group共享数据库;
将所述第一App与所述App Group共享数据库中的其他App进行密文启动关联;其中,其他App与第一App具有相同加密过程;
当通过单点登录启动App Group共享数据库中任意的App时,获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间;根据当前登录间隔时间,利用所述时间戳mod算法,以及所述预设加密算法计算得到密钥K1;比较所述K1和K,并根据比较结果执行预设动作,其中,若K1=K,则对所述密文A进行解密得到所述数字签名,以所述数字签名自动登录第一App,并解密登录所述App Group共享数据库中与所述第一App具有启动关联关系的其他App;若K1≠K;则提示重新输入账号密码登录。
进一步地,所述通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A的步骤,包括:
将所述数值T转换生成128位字符;
通过哈希算法对所述128位字符进行字符转换,得到256位新字符组成的密钥K;
利用所述密钥K,通过AES256算法对所述数字签名进行加密,得到密文A。
进一步地,所述将所述数值T转换生成128位字符的步骤包括:
在所述数值T后填充一个1和N个0,以及一个以64位二进制表示的所述数值T的组合信息长度,N满足:填充后的信息字节长度=N*512+448+64=(N+1)*512;其中,N为自然数;
对填充后的信息进行32位逐位运算,所述逐位运算算法如下:
F(X,Y,Z)=(~X&Y)|(X&(~Z))=a
G(X,Y,Z)=(X&Z)|(Y&Z)=b
H(X,Y,Z)=X^Y^Z=c
I(X,Y,Z)=Y^(X|(~Z))=d
其中,X、Y、Z为填充后的数值T对应的32位子分组;
进一步地,所述获取第一App在终端登录成功后服务器端签发的token文本为用户最近一次通过输入账号、密码的形式成功登录App时服务器端签发的token文本。
进一步地,所述获取第一App在终端登录成功后服务器端签发的token文本的步骤之前,还包括:
在本地建立App Group共享数据库;以及设定App的有效登录时间t。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种多App单点登录方法,其特征在于,包括:
获取第一App在终端登录成功后服务器端签发的token文本;
从token文本中获取用于登录验证的数字签名,并获取登录时间t0;
根据登录时间t0,通过时间戳mod算法计算数值T;
通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A;
将所述密文A与所述第一App关联生成关系表并存入预设的App Group共享数据库;
将所述第一App与所述App Group共享数据库中的其他App进行密文启动关联;其中,其他App与第一App具有相同加密过程;
当通过单点登录启动App Group共享数据库中任意的App时,获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间;根据当前登录间隔时间,利用所述时间戳mod算法,以及所述预设加密算法计算得到密钥K1;比较所述K1和K,并根据比较结果执行预设动作,其中,若K1=K,则对所述密文A进行解密得到所述数字签名,以所述数字签名自动登录第一App,并解密登录所述App Group共享数据库中与所述第一App具有启动关联关系的其他App;若K1≠K;则提示重新输入账号密码登录。
2.根据权利要求1所述的多App单点登录方法,其特征在于,所述通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A的步骤,包括:
将所述数值T转换生成128位字符;
通过哈希算法对所述128位字符进行字符转换,得到256位新字符组成的密钥K;
利用所述密钥K,通过AES256算法对所述数字签名进行加密,得到密文A。
3.根据权利要求2所述的多App单点登录方法,其特征在于,所述将所述数值T转换生成128位字符的步骤包括:
在所述数值T后填充一个1和N个0,以及一个以64位二进制表示的所述数值T的组合信息长度,N满足:填充后的信息字节长度=N*512+448+64=(N+1)*512;其中,N为自然数;
对填充后的信息进行32位逐位运算,所述逐位运算算法如下:
F(X,Y,Z)=(~X&Y)|(X&(~Z))=a
G(X,Y,Z)=(X&Z)|(Y&Z)=b
H(X,Y,Z)=X^Y^Z=c
I(X,Y,Z)=Y^(X|(~Z))=d
其中,X、Y、Z为填充后的数值T对应的32位子分组;
4.根据权利要求1所述的多App单点登录方法,其特征在于,所述时间戳mod算法为T=time mod t;其中,time为登录间隔时间,t为有效登录时间。
5.根据权利要求1所述的多App单点登录方法,其特征在于,所述获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间的步骤,包括:
获取本次登录的App的登录日志,从登录日志中获取上一次登录时间t2;所述当前登录间隔时间为:t1-t2。
6.一种多App单点登录装置,其特征在于,包括:
第一获取单元,用于获取第一App在终端登录成功后服务器端签发的token文本;
第二获取单元,用于从token文本中获取用于登录验证的数字签名,并获取登录时间t0;
第一计算单元,用于根据登录时间t0,通过时间戳mod算法计算数值T;
第二计算单元,用于通过预设加密算法将所述数值T转换成密钥K,根据所述密钥K对所述数字签名进行加密得到密文A;
存储单元,用于将所述密文A与所述第一App关联生成关系表并存入预设的App Group共享数据库;
关联单元,用于将所述第一App与所述App Group共享数据库中的其他App进行密文启动关联;其中,其他App与第一App具有相同加密过程;
登录单元,用于当通过单点登录启动App Group共享数据库中任意的App时,获取当前时间t1,根据所述当前时间t1确定当前登录间隔时间;根据当前登录间隔时间,利用所述时间戳mod算法,以及所述预设加密算法计算得到密钥K1;比较所述K1和K,并根据比较结果执行预设动作,其中,若K1=K,则对所述密文A进行解密得到所述数字签名,以所述数字签名自动登录第一App,并解密登录所述App Group共享数据库中与所述第一App具有启动关联关系的其他App;若K1≠K;则提示重新输入账号密码登录。
7.根据权利要求6所述的多App单点登录装置,其特征在于,所述第二计算单元,还用于:
将所述数值T转换生成128位字符;
通过哈希算法对所述128位字符进行字符转换,得到256位新字符组成的密钥K;
利用所述密钥K,通过AES256算法对所述数字签名进行加密,得到密文A。
8.根据权利要求6所述的多App单点登录装置,其特征在于,所述第二计算单元,还用于:
在所述数值T后填充一个1和N个0,以及一个以64位二进制表示的所述数值T的组合信息长度,N满足:填充后的信息字节长度=N*512+448+64=(N+1)*512;其中,N为自然数;
对填充后的信息进行32位逐位运算,所述逐位运算算法如下:
F(X,Y,Z)=(~X&Y)|(X&(~Z))=a
G(X,Y,Z)=(X&Z)|(Y&Z)=b
H(X,Y,Z)=X^Y^Z=c
I(X,Y,Z)=Y^(X|(~Z))=d
其中,X、Y、Z为填充后的数值T对应的32位子分组;
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010148789.0A CN111475798A (zh) | 2020-03-05 | 2020-03-05 | 多App单点登录的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010148789.0A CN111475798A (zh) | 2020-03-05 | 2020-03-05 | 多App单点登录的方法、装置、设备和存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111475798A true CN111475798A (zh) | 2020-07-31 |
Family
ID=71748174
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010148789.0A Pending CN111475798A (zh) | 2020-03-05 | 2020-03-05 | 多App单点登录的方法、装置、设备和存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111475798A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114637985A (zh) * | 2022-02-23 | 2022-06-17 | 南京邮电大学 | 一种基于多环境参数的Android应用登录伪造识别方法 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101202753A (zh) * | 2007-11-29 | 2008-06-18 | 中国电信股份有限公司 | 一种客户端访问插件应用系统的方法和装置 |
| CN107257346A (zh) * | 2017-07-07 | 2017-10-17 | 东软集团股份有限公司 | 单点登录的业务访问处理方法及其设备 |
| CN108023874A (zh) * | 2017-11-15 | 2018-05-11 | 平安科技(深圳)有限公司 | 单点登录的校验装置、方法及计算机可读存储介质 |
| CN108055356A (zh) * | 2018-01-08 | 2018-05-18 | 武汉斗鱼网络科技有限公司 | 一种信息处理方法、服务器、客户端及可读存储介质 |
| CN108647501A (zh) * | 2018-05-09 | 2018-10-12 | 平安科技(深圳)有限公司 | 多应用程序共享密码解锁方法、装置、设备及存储介质 |
| CN109347627A (zh) * | 2018-09-19 | 2019-02-15 | 平安科技(深圳)有限公司 | 数据加解密方法、装置、计算机设备及存储介质 |
-
2020
- 2020-03-05 CN CN202010148789.0A patent/CN111475798A/zh active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101202753A (zh) * | 2007-11-29 | 2008-06-18 | 中国电信股份有限公司 | 一种客户端访问插件应用系统的方法和装置 |
| CN107257346A (zh) * | 2017-07-07 | 2017-10-17 | 东软集团股份有限公司 | 单点登录的业务访问处理方法及其设备 |
| CN108023874A (zh) * | 2017-11-15 | 2018-05-11 | 平安科技(深圳)有限公司 | 单点登录的校验装置、方法及计算机可读存储介质 |
| CN108055356A (zh) * | 2018-01-08 | 2018-05-18 | 武汉斗鱼网络科技有限公司 | 一种信息处理方法、服务器、客户端及可读存储介质 |
| CN108647501A (zh) * | 2018-05-09 | 2018-10-12 | 平安科技(深圳)有限公司 | 多应用程序共享密码解锁方法、装置、设备及存储介质 |
| CN109347627A (zh) * | 2018-09-19 | 2019-02-15 | 平安科技(深圳)有限公司 | 数据加解密方法、装置、计算机设备及存储介质 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114637985A (zh) * | 2022-02-23 | 2022-06-17 | 南京邮电大学 | 一种基于多环境参数的Android应用登录伪造识别方法 |
| CN114637985B (zh) * | 2022-02-23 | 2024-11-29 | 南京邮电大学 | 一种基于多环境参数的Android应用登录伪造识别方法 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109347627B (zh) | 数据加解密方法、装置、计算机设备及存储介质 | |
| US9367701B2 (en) | Systems and methods for maintaining integrity and secrecy in untrusted computing platforms | |
| KR101999188B1 (ko) | 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안 | |
| US6950523B1 (en) | Secure storage of private keys | |
| US8775794B2 (en) | System and method for end to end encryption | |
| CN110351077B (zh) | 数据加密的方法、装置、计算机设备和存储介质 | |
| CN111475824B (zh) | 数据访问方法、装置、设备和存储介质 | |
| CN110401615B (zh) | 一种身份认证方法、装置、设备、系统及可读存储介质 | |
| WO2020155779A1 (zh) | 数字签名的认证方法、装置、计算机设备和存储介质 | |
| US20080172562A1 (en) | Encryption and authentication of data and for decryption and verification of authenticity of data | |
| JP4528442B2 (ja) | 鍵対を形成し秘密鍵を復元する方法、鍵対を形成し秘密鍵を復元する装置、鍵対を形成する方法、ならびに、鍵対を形成する装置 | |
| US9698982B2 (en) | Bluesalt security | |
| CN110175467A (zh) | 基于区块链的签名文件保存方法、装置和计算机设备 | |
| CN110278115A (zh) | 热更新方法及装置 | |
| CN103780379A (zh) | 密码加密方法和系统以及密码校验方法和系统 | |
| CN110995410A (zh) | 一种公钥和私钥的生成方法、装置、设备以及介质 | |
| CN114268447A (zh) | 一种文件传输方法、装置、电子设备和计算机可读介质 | |
| CN114679299A (zh) | 通信协议加密方法、装置、计算机设备和存储介质 | |
| CN108292997B (zh) | 认证控制系统及方法、服务器装置、客户装置、认证方法及记录介质 | |
| CN110188545B (zh) | 一种基于链式数据库的数据加密方法及装置 | |
| CN111475798A (zh) | 多App单点登录的方法、装置、设备和存储介质 | |
| CN111404680B (zh) | 口令管理方法和装置 | |
| CN112995096B (zh) | 数据加密、解密方法、装置及设备 | |
| CN101099327B (zh) | 用于通用密钥导出函数支持的安全接口 | |
| CN115720137A (zh) | 一种信息管理的系统、方法以及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200731 |
|
| WD01 | Invention patent application deemed withdrawn after publication |