CN107948152B - 信息存储方法、获取方法、装置及设备 - Google Patents

信息存储方法、获取方法、装置及设备 Download PDF

Info

Publication number
CN107948152B
CN107948152B CN201711179733.6A CN201711179733A CN107948152B CN 107948152 B CN107948152 B CN 107948152B CN 201711179733 A CN201711179733 A CN 201711179733A CN 107948152 B CN107948152 B CN 107948152B
Authority
CN
China
Prior art keywords
salt
information
user
user identity
identity information
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.)
Active
Application number
CN201711179733.6A
Other languages
English (en)
Other versions
CN107948152A (zh
Inventor
赵子云
于涛
崔精兵
屈亚鑫
毕磊
张洁烽
王炳堪
张友旭
任光辉
郭长宇
郭晓龙
姜澎
吴彬
苏蒙
王俊豪
申金娟
张森炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201711179733.6A priority Critical patent/CN107948152B/zh
Publication of CN107948152A publication Critical patent/CN107948152A/zh
Application granted granted Critical
Publication of CN107948152B publication Critical patent/CN107948152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种信息存储方法、获取方法、装置及设备。所述方法包括:获取由第一应用生成的用户在第二应用中的用户身份信息;采用第一盐组对用户身份信息执行至少一轮加密得到用户标识,以及采用第二组盐对用户身份信息执行至少一轮加密得到密钥,第一盐组和第二盐组中各包括至少一个盐;采用密钥对待存储信息加密,得到加密信息;将用户标识和加密信息对应存储至第二应用的信息数据库中。本发明实施例以用户身份信息为基础字符串,采用加盐加密算法生成用户标识和密钥,采用该密钥对信息加密,而后将用户标识和加密信息对应存储,相较于直接采用哈希算法对信息加密后存储,本发明实施例中的加密信息破解难度提升,安全性提高。

Description

信息存储方法、获取方法、装置及设备
技术领域
本发明实施例涉及信息存储技术领域,特别涉及一种信息存储方法、获取方法、装置及设备。
背景技术
对于敏感信息如何更好的存储、管理,以更好的保证这些敏感信息的安全和保护用户的隐私,一直以来是各大公司、企业关注和重视的问题。用户的敏感信息可以包括姓名、性别、出生日期、证件号码、联系电话等信息。
为了提高上述敏感信息的安全性,需要对这些敏感信息进行加密等安全处理后再进行存储。在相关技术中,提供了一种基于哈希算法的加密存储方案。以存储目标用户的敏感信息为例,对目标用户的敏感信息进行哈希计算得到加密信息,而后将目标用户的用户帐号和上述加密信息对应存储至敏感信息数据库中。其中,目标用户的用户帐号可以是该目标用户在登录某一网络服务所注册的帐号,用于唯一标识目标用户的身份。
但是,对于采用前述哈希算法进行加密的敏感信息,网络黑客能够使用彩虹表(rainbow tables)技术进行破解,安全性较低。并且,在想要获取某一用户的敏感信息时,直接基于该用户的用户帐号即可找到相应的敏感信息。
发明内容
本发明实施例提供了一种信息存储方法、获取方法、装置及设备,可用于解决相关技术提供的信息存储方案所存在的查找和破解难度低,安全性低的问题。所述技术方案如下:
第一方面,提供了一种信息存储方法,所述方法包括:
获取由第一应用生成的用户在第二应用中的用户身份信息;
采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,所述第一盐组中包括至少一个盐;
采用第二组盐对所述用户身份信息执行至少一轮加密得到密钥,所述第二盐组中包括至少一个盐;
采用所述密钥对待存储信息加密,得到加密信息;
将所述用户标识和所述加密信息对应存储至所述第二应用的信息数据库中。
第二方面,提供了一种信息获取方法,所述方法包括:
获取由第一应用生成的用户在第二应用中的用户身份信息;
采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,所述第一盐组中包括至少一个盐;
采用第二组盐对所述用户身份信息执行至少一轮加密得到密钥,所述第二盐组中包括至少一个盐;
从所述第二应用的信息数据库中获取与所述用户标识对应存储的加密信息;
采用所述密钥对所述加密信息解密,得到明文信息。
第三方面,提供了一种信息存储装置,所述装置包括:
信息获取模块,用于获取由第一应用生成的用户在第二应用中的用户身份信息;
第一加密模块,用于采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,所述第一盐组中包括至少一个盐;
第二加密模块,用于采用第二组盐对所述用户身份信息执行至少一轮加密得到密钥,所述第二盐组中包括至少一个盐;
第三加密模块,用于采用所述密钥对待存储信息加密,得到加密信息;
信息存储模块,用于将所述用户标识和所述加密信息对应存储至所述第二应用的信息数据库中。
第四方面,提供了一种信息获取装置,所述装置包括:
信息获取模块,用于获取由第一应用生成的用户在第二应用中的用户身份信息;
第一加密模块,用于采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,所述第一盐组中包括至少一个盐;
第二加密模块,用于采用第二组盐对所述用户身份信息执行至少一轮加密得到密钥,所述第二盐组中包括至少一个盐;
信息获取模块,用于从所述第二应用的信息数据库中获取与所述用户标识对应存储的加密信息;
信息解密模块,用于采用所述密钥对所述加密信息解密,得到明文信息。
第五方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被所述处理器执行时实现如第一方面或第二方面所述的方法。
第六方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被执行时实现如第一方面或第二方面所述的方法。
第七方面,提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述第一方面或第二方面所述的方法。
本发明实施例提供的技术方案可以带来如下有益效果:
通过以用户身份信息作为基础字符串,采用加盐加密算法对用户身份信息进行加密,得到用户标识和密钥,采用上述密钥对待存储信息加密得到加密信息,而后将用户标识和加密信息对应存储;一方面,加密信息是采用密钥进行加密后得到的,且密钥是经过加盐加密算法生成的,相较于直接采用哈希算法对待存储信息进行加密后存储,本发明实施例中的加密信息破解难度提升,安全性提高;另一方面,用户标识也是经过加盐加密算法生成的,而非明文的用户帐号,从而在想要获取某一用户已存储的信息时,不能够直接基于该用户的用户帐号找到相应的信息,需要生成准确的用户标识才能找到相应的信息,使得破解难度进一步提升,安全性进一步提高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的实施环境的示意图;
图2是本发明一个实施例提供的信息存储方法的流程图;
图3是本发明另一个实施例提供的信息存储方法的流程图;
图4是本发明实施例涉及的信息存储过程的示意图;
图5是本发明实施例提供的信息存储过程中涉及的四要素的示意图;
图6是本发明一个实施例提供的信息获取方法的流程图;
图7是本发明另一个实施例提供的信息获取方法的流程图;
图8是本发明实施例涉及的信息获取过程的示意图;
图9是本发明一个实施例提供的信息存储装置的框图;
图10是本发明一个实施例提供的信息获取装置的框图;
图11是本发明一个实施例提供的计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供的方法,各步骤的执行主体可以是任意具备数据存取功能的电子设备,如服务器、终端设备、云端设备、数据中心设备,等等。在一个示例中,当执行主体为服务器时,该服务器可以是网络服务提供方的后台服务器,用于对用户的信息进行安全加密存储管理。上述网络服务提供方可以是诸如社交类应用、即时通信应用、支付类应用、网络购物应用、游戏应用等任一应用程序。
在一个示例中,如图1所示,本发明实施例可能涉及的一个实施环境可以包括:终端110和服务器120。
终端110可以是诸如手机、平板电脑、个人计算机等电子设备。
服务器120可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。该服务器120可以是网络服务提供方的后台服务器,相应地,终端110中可以安装运行网络服务提供方的应用程序客户端,用户通过上述应用程序客户端在后台服务器中存取信息。
上述图1所示的实施环境仅是示例性和解释性的,信息除了可以存储在服务器120中之外,也可以存储在终端110中,或者在终端110和服务器120中同步存储,或者存储在与服务器120之间具有通信连接的其它设备(如云端设备、数据中心设备)中,本发明实施例对此不作限定。随着科学技术的发展和新业务场景的出现,信息的存储方式会发生改变,但本发明实施例提供的技术方案对于新业务场景中的类似问题同样适用。
在本发明实施例中,对存取的信息的具体内容不作限定,例如其可以是诸如用户的姓名、性别、出生日期、证件号码、联系电话、家庭成员、工资记录、工作简历、通讯记录、相册等敏感信息,也可以是其它任何需要进行加密存储的信息,如文件、数据等。
请参考图2,其示出了本发明一个实施例提供的信息存储方法的流程图。该方法可以包括如下几个步骤:
步骤201,获取由第一应用生成的用户在第二应用中的用户身份信息。
第一应用和第二应用是两个不同的应用程序,如第一应用为一即时通信应用,第二应用为一网络购物应用。在本发明实施例中,第二应用用于对用户的信息进行安全加密存储管理。
用户身份信息是指能够唯一标识用户在第二应用中的身份的信息,不同的用户具有不同的用户身份信息,例如用户身份信息可以是用户帐号或者其它唯一标识符。在本发明实施例中,用户在第二应用中的用户身份信息由第一应用生成。可选地,第二应用并不保存用户身份信息,其每次需要获取用户身份信息时,调用第一应用向其提供用户身份信息。
示例性地,第二应用的客户端向用户提供二维码,通过扫描识别上述二维码调用第一应用根据用户在第二应用中的用户帐号生成用户在第二应用中的用户身份信息,并将上述用户身份信息提供给第二应用。第二应用在获取到该用户身份信息之后,可以基于该用户身份信息采用下文提供的方法步骤对待存储信息进行存储,并在完成存储流程之后,无需在第二应用的后台保存用户身份信息。当需要再次存储信息或者获取信息时,重复上述流程即可。
步骤202,采用第一盐组对用户身份信息执行至少一轮加密得到用户标识。
在本发明实施例中,采用加盐加密法对用户身份信息进行加密得到用户标识。加盐加密法是指将待加密的信息与一个作为盐(salt)的字符串拼接,而后对拼接后字符串执行哈希计算得到加密结果。上述盐通常是一个n位随机数,盐也称为加密盐,n为正整数。第一盐组中包括至少一个盐,每一个盐均可随机生成。
用户标识也称为用户ID(identity),是用户在信息数据库中的唯一标识信息。对于不同的用户来说,由于其用户身份信息不同,因此加密得到的用户标识也不同,即不同的用户在信息数据库中具有不同的用户标识。信息数据库是指用于存储用户的信息的数据库,上述信息通常会加密后再存储,以提升信息的安全性。在信息数据库中,将用户标识和加密后的信息对应存储。
在一个示例中,第一盐组中包括a个盐,a为正整数。上述步骤202可以包括如下几个子步骤:
1、将第i-1轮加密结果和第一盐组中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果,其中,i的初始值为1,当i=1时,第i-1轮加密结果(也即第0轮加密结果)为用户身份信息;
2、当i小于a时,令i=i+1,并再次从上述步骤1开始执行,直至i等于a时结束流程,并将第i轮加密结果确定为用户标识。
示例性地,假设a=3,也即第一盐组中包括3个盐,分别记为salt1、salt2和salt3,假设用户身份信息以A表示,用户标识以User ID表示,则生成User ID的过程如下:(1)对A+salt1进行一次哈希计算得到B,(2)对B+salt2进行一次哈希计算得到C,(3)对C+salt3进行一次哈希计算得到User ID。上述+表示将两个字符串拼接。
上述生成用户标识的算法可以称为PBKDF2(Password-Based KeyDerivationFunction 2)算法。其中,第一盐组中盐的数量a可以根据对复杂度的需求预先设定,若复杂度需求较高,则a的取值越大,对用户标识进行破解的难度也越大。将加密结果和盐拼接,可以是将盐拼接在加密结果后面,也即加密结果的最后一个字符与盐的第一个字符相拼接;也可以将加密结果拼接在盐后面,也即盐的最后一个字符与加密结果的第一个字符相拼接;或者采用其它组合方式将两者拼接。哈希计算所采用的算法可以是SHA256算法、SHA1算法、MD5(Message Digest Algorithm 5)算法等,本发明实施例对此不作限定。
步骤203,采用第二组盐对用户身份信息执行至少一轮加密得到密钥。
在上述步骤202中,基于用户身份信息生成用户标识,在本发明实施例中,密钥也是基于用户身份信息生成。密钥用于对待存储信息进行加密。在本发明实施例中,采用对称加密算法对信息进行加密,也即加密和解密所采用的密钥相同。
类似地,在本发明实施例中,采用加盐加密法对用户身份信息进行加密得到密钥。第二盐组中包括至少一个盐,每一个盐均可随机生成。由于第一盐组和第二盐组中的盐均是随机生成的字符串,因此第一盐组和第二盐组中的盐通常来说不会完全相同。另外,第一盐组所包括的盐的数量与第二盐组所包括的盐的数量可以相同,也可以不同,本发明实施例对此不作限定。
在一个示例中,第二盐组中包括b个盐,b为正整数。上述步骤203可以包括如下几个子步骤:
1、将第j-1轮加密结果和第二盐组中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果,其中,j的初始值为1,当j=1时,第j-1轮加密结果(也即第0轮加密结果)为用户身份信息;
2、当j小于b时,令j=j+1,并再次从上述步骤1开始执行,直至j等于b时结束流程,并将第j轮加密结果确定为密钥。
示例性地,假设b=4,也即第二盐组中包括4个盐,分别记为salt4、salt5、salt6和salt7,假设用户身份信息以A表示,密钥以secret key表示,则生成secretkey的过程如下:(1)对A+salt4进行一次哈希计算得到D,(2)对D+salt5进行一次哈希计算得到E,(3)对E+salt6进行一次哈希计算得到F,(4)对F+salt7进行一次哈希计算得到secret key。上述+表示将两个字符串拼接。
上述生成密钥的算法可以称为PBKDF2算法。其中,第二盐组中盐的数量b可以根据对复杂度的需求预先设定,若复杂度需求较高,则b的取值越大,对密钥进行破解的难度也越大。将加密结果和盐拼接,可以是将盐拼接在加密结果后面,也即加密结果的最后一个字符与盐的第一个字符相拼接;也可以将加密结果拼接在盐后面,也即盐的最后一个字符与加密结果的第一个字符相拼接;或者采用其它组合方式将两者拼接。哈希计算所采用的算法可以是SHA256算法、SHA1算法、MD5算法等,本发明实施例对此不作限定。
另外,在本发明实施例中,对上述步骤202和步骤203的执行顺序不作限定,步骤203可以在步骤202之后执行,也可以在步骤202之前执行,或者与步骤202同时执行。
步骤204,采用密钥对待存储信息加密,得到加密信息。
当需要存储任一用户的信息时,基于该用户的用户身份信息分别生成该用户的用户标识和密钥,而后采用生成的密钥对该用户的信息进行加密,得到加密信息。
在本发明实施例中,对加密所采用的对称加密算法不作限定,如DES(DataEncryption Standard,数据加密标准)算法、3DES算法、Blowfish算法、RC5算法、IDEA(International Data Encryption Algorithm,国际数据加密算法)算法等。
步骤205,将用户标识和加密信息对应存储至第二应用的信息数据库中。
可选地,在数据库中存储加密信息,该数据库可以称为信息数据库,将用户标识和加密信息对应存储至信息数据库中。在信息数据库中,用户标识作为加密信息的主键,以对不同用户的加密信息进行区分。示例性地,信息数据库中存储的数据如下表-1所示:
用户1的用户标识 用户1的加密信息
用户2的用户标识 用户2的加密信息
用户3的用户标识 用户3的加密信息
表-1
综上所述,本发明实施例提供的信息存储方法,通过以用户身份信息作为基础字符串,采用加盐加密算法对用户身份信息进行加密,得到用户标识和密钥,采用上述密钥对待存储信息加密得到加密信息,而后将用户标识和加密信息对应存储;一方面,加密信息是采用密钥进行加密后得到的,且密钥是经过加盐加密算法生成的,相较于直接采用哈希算法对待存储信息进行加密后存储,本发明实施例中的加密信息破解难度提升,安全性提高;另一方面,用户标识也是经过加盐加密算法生成的,而非明文的用户帐号,从而在想要获取某一用户已存储的信息时,不能够直接基于该用户的用户帐号找到相应的信息,需要生成准确的用户标识才能找到相应的信息,使得破解难度进一步提升,安全性进一步提高。
另外,整个信息加密存储过程的起始内容为用户身份信息,而用户身份信息是由第一应用生成的,当第二应用需要存储用户的信息时,其先通过第一应用获取用户身份信息,且该用户身份信息并不是由第二应用保存,因此即便第二应用的信息数据库被盗,由于黑客并无法获取到用户身份信息,也就不能够对信息数据库中的加密信息进行成功解密。
请参考图3,其示出了本发明另一个实施例提供的信息存储方法的流程图。该方法可以包括如下几个步骤:
步骤301,获取由第一应用生成的用户在第二应用中的用户身份信息。
步骤301与图2实施例中的步骤201相同,参见图2实施例中的介绍说明,本实施例对此不再赘述。
步骤302,对用户身份信息执行至少一次哈希计算,得到一字符串作为盐标识。
盐标识也称为盐ID,是用户在盐数据库中的唯一标识信息。对于不同的用户来说,由于其用户身份信息不同,因此经过哈希计算得到的盐标识也不同,即不同的用户在盐数据库中具有不同的盐标识。盐数据库是指用于存储对用户的信息进行加密存储时所用到的盐(也即上文提到的第一盐组和第二盐组)的数据库。在盐数据库中,将盐标识和盐对应存储。
在一种可能的实施方式中,对用户身份信息执行一次哈希计算,得到一字符串作为盐标识。
在另一种可能的实施方式中,对用户身份信息执行第一次哈希计算,得到一字符串作为盐;将用户身份信息和盐拼接,对拼接后字符串执行第二次哈希计算,得到一字符串作为盐标识。其中,将用户身份信息和盐拼接,可以是将盐拼接在用户身份信息后面,也即用户身份信息的最后一个字符与盐的第一个字符相拼接;也可以将用户身份信息拼接在盐后面,也即盐的最后一个字符与用户身份信息的第一个字符相拼接;或者采用其它组合方式将两者拼接。哈希计算所采用的算法可以是SHA256算法、SHA1算法、MD5算法等,本发明实施例对此不作限定。相较于上述第一种实施方式,采用本实施方式生成的盐标识的破解难度更大。
步骤303,生成第一盐组和第二盐组。
所述第一盐组和第二盐组中的每一个盐均随机生成,也即每一个盐均是一个随机生成的字符串。第一盐组中包括至少一个盐,第二盐组中包括至少一个盐。
可选地,为了提升用户标识和密钥的破解难度,进而提升加密信息的破解难度,第一盐组中包括至少两个盐,和/或,第二盐组中包括至少两个盐。
可选地,当第一盐组中包括至少两个盐时,该至少两个盐可以列表的形式按序排列,在后续采用第一盐组对用户身份信息执行至少一轮加密得到用户标识的过程中,根据该至少两个盐的排列顺序,依次选取盐进行加密。例如,假设第一盐组对应的列表中包括a个盐,采用第一盐组对用户身份信息进行加密得到用户标识的过程如下:1、将第i-1轮加密结果和第一盐组对应的列表中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果,其中,i的初始值为1,当i=1时,第i-1轮加密结果(也即第0轮加密结果)为用户身份信息;2、当i小于a时,令i=i+1,并再次从上述步骤1开始执行,直至i等于a时结束流程,并将第i轮加密结果确定为用户标识。
类似地,当第二盐组中包括至少两个盐时,该至少两个盐可以列表的形式按序排列,在后续采用第二盐组对用户身份信息执行至少一轮加密得到密钥的过程中,根据该至少两个盐的排列顺序,依次选取盐进行加密。例如,假设第二盐组对应的列表中包括b个盐,采用第二盐组对用户身份信息进行加密得到密钥的过程如下:1、将第j-1轮加密结果和第二盐组对应的列表中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果,其中,j的初始值为1,当j=1时,第j-1轮加密结果(也即第0轮加密结果)为用户身份信息;2、当j小于b时,令j=j+1,并再次从上述步骤1开始执行,直至j等于b时结束流程,并将第j轮加密结果确定为密钥。
另外,在本发明实施例中,对上述步骤301和步骤303的执行顺序不作限定,步骤303可以在步骤301之后执行,也可以在步骤301之前执行,或者与步骤301同时执行。
步骤304,将盐标识和第一盐组、第二盐组对应存储。
可选地,在数据库中存储盐组,该数据库可以称为盐数据库,将盐标识和第一盐组、第二盐组对应存储至盐数据库中。在盐数据库中,盐标识作为盐的主键,以对不同用户的盐进行区分。示例性地,盐数据库中存储的数据如下表-2所示:
Figure BDA0001478933760000101
Figure BDA0001478933760000111
表-2
步骤305,采用第一盐组对用户身份信息执行至少一轮加密得到用户标识。
步骤306,采用第二组盐对用户身份信息执行至少一轮加密得到密钥。
步骤307,采用密钥对待存储信息加密,得到加密信息。
步骤308,将用户标识和加密信息对应存储至第二应用的信息数据库中。
上述步骤305-308与图2实施例中的步骤202-205相同,参见图2实施例中的介绍说明,本实施例对此不再赘述。
结合参考图4,其示出了本发明实施例涉及的信息存储过程的示意图。该过程主要包括如下4部分:
1、生成盐标识,与盐对应存储
对用户身份信息执行一次哈希计算,得到一字符串作为盐;将用户身份信息和盐拼接,对拼接后字符串执行一次哈希计算,得到一字符串作为盐标识。将盐标识作为盐的主键,存入盐数据库中,并生成与该盐标识对应的第一盐组和第二盐组,第一盐组和第二盐组中的盐均随机生成。上述第1部分与图3实施例中的步骤301-304相对应。
2、生成用户标识
采用PBKDF2算法使用第一盐组对用户身份信息进行加密得到用户标识。将用户标识作为用户信息的主键,存储在信息数据库中。上述第2部分与图3实施例中的步骤305相对应。
3、生成密钥
采用PBKDF2算法使用第二盐组对用户身份信息进行加密得到密钥。上述第3部分与图3实施例中的步骤306相对应。
4、加密存储
当有用户的待存储信息时,采用密钥对待存储信息加密,得到加密信息,而后将加密信息在信息数据库中与用户标识对应存储。上述第4部分与图3实施例中的步骤307-308相对应。
如图5所示,在本发明实施例中,信息存储过程中涉及到如下4部分内容:用户身份信息51、盐数据库52、信息数据库53、加密逻辑代码54。加密逻辑代码用于实现上述图2和图3实施例中的各个方法步骤。上述4部分内容各自独立存储,黑客如需对加密后的信息进行破解,则需要将这4部分内容同时获取到,破解难度将会极大提高。
综上所述,本发明实施例提供的信息存储方法,通过以用户身份信息作为基础字符串,采用加盐加密算法对用户身份信息进行加密,得到用户标识和密钥,采用上述密钥对待存储信息加密得到加密信息,而后将用户标识和加密信息对应存储;一方面,加密信息是采用密钥进行加密后得到的,且密钥是经过加盐加密算法生成的,相较于直接采用哈希算法对待存储信息进行加密后存储,本发明实施例中的加密信息破解难度提升,安全性提高;另一方面,用户标识也是经过加盐加密算法生成的,而非明文的用户帐号,从而在想要获取某一用户已存储的信息时,不能够直接基于该用户的用户帐号找到相应的信息,需要生成准确的用户标识才能找到相应的信息,使得破解难度进一步提升,安全性进一步提高。
请参考图6,其示出了本发明一个实施例提供的信息获取方法的流程图。该方法可以包括如下几个步骤:
步骤601,获取由第一应用生成的用户在第二应用中的用户身份信息。
第一应用和第二应用是两个不同的应用程序,如第一应用为一即时通信应用,第二应用为一网络购物应用。在本发明实施例中,第二应用用于对用户的信息进行安全加密存储管理。
用户身份信息是指能够唯一标识用户在第二应用中的身份的信息,不同的用户具有不同的用户身份信息,例如用户身份信息可以是用户帐号或者其它唯一标识符。在本发明实施例中,用户在第二应用中的用户身份信息由第一应用生成。可选地,第二应用并不保存用户身份信息,其每次需要获取用户身份信息时,调用第一应用向其提供用户身份信息。
示例性地,第二应用的客户端向用户提供二维码,通过扫描识别上述二维码调用第一应用根据用户在第二应用中的用户帐号生成用户在第二应用中的用户身份信息,并将上述用户身份信息提供给第二应用。第二应用在获取到该用户身份信息之后,可以基于该用户身份信息采用下文提供的方法步骤解密获取用户已存储的信息,并在完成获取流程之后,无需在第二应用的后台保存用户身份信息。当需要再次获取信息或者存储信息时,重复上述流程即可。
步骤602,采用第一盐组对用户身份信息执行至少一轮加密得到用户标识。
在本发明实施例中,采用加盐加密法对用户身份信息进行加密得到用户标识。加盐加密法是指将待加密的信息与一个作为盐(salt)的字符串拼接,而后对拼接后字符串执行哈希计算得到加密结果。上述盐通常是一个n位随机数,盐也称为加密盐,n为正整数。第一盐组中包括至少一个盐,每一个盐均可随机生成。
用户标识也称为用户ID,是用户在信息数据库中的唯一标识信息。对于不同的用户来说,由于其用户身份信息不同,因此加密得到的用户标识也不同,即不同的用户在信息数据库中具有不同的用户标识。信息数据库是指用于存储用户的信息的数据库,上述信息通常会加密后再存储,以提升信息的安全性。在信息数据库中,将用户标识和加密后的信息对应存储。
在一个示例中,第一盐组中包括a个盐,a为正整数。上述步骤602可以包括如下几个子步骤:
1、将第i-1轮加密结果和第一盐组中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果,其中,i的初始值为1,当i=1时,第i-1轮加密结果(也即第0轮加密结果)为用户身份信息;
2、当i小于a时,令i=i+1,并再次从上述步骤1开始执行,直至i等于a时,结束流程,并将第i轮加密结果确定为用户标识。
示例性地,假设a=3,也即第一盐组中包括3个盐,分别记为salt1、salt2和salt3,假设用户身份信息以A表示,用户标识以User ID表示,则生成User ID的过程如下:(1)对A+salt1进行一次哈希计算得到B,(2)对B+salt2进行一次哈希计算得到C,(3)对C+salt3进行一次哈希计算得到User ID。上述+表示将两个字符串拼接。
上述生成用户标识的算法可以称为PBKDF2算法。其中,第一盐组中盐的数量a可以根据对复杂度的需求预先设定,若复杂度需求较高,则a的取值越大,对用户标识进行破解的难度也越大。将加密结果和盐拼接,可以是将盐拼接在加密结果后面,也即加密结果的最后一个字符与盐的第一个字符相拼接;也可以将加密结果拼接在盐后面,也即盐的最后一个字符与加密结果的第一个字符相拼接;或者采用其它组合方式将两者拼接。哈希计算所采用的算法可以是SHA256算法、SHA1算法、MD5算法等,本发明实施例对此不作限定。
步骤603,采用第二组盐对用户身份信息执行至少一轮加密得到密钥。
在上述步骤602中,基于用户身份信息生成用户标识,在本发明实施例中,密钥也是基于用户身份信息生成。在本发明实施例中,采用对称加密算法对待存储信息进行加密,也即加密和解密所采用的密钥相同。因此,密钥除用于对待存储信息进行加密之外,也用于对加密信息进行解密得到明文信息。
类似地,在本发明实施例中,采用加盐加密法对用户身份信息进行加密得到密钥。第二盐组中包括至少一个盐,每一个盐均可随机生成。由于第一盐组和第二盐组中的盐均是随机生成的字符串,因此第一盐组和第二盐组中的盐通常来说不会完全相同。另外,第一盐组所包括的盐的数量与第二盐组所包括的盐的数量可以相同,也可以不同,本发明实施例对此不作限定。
在一个示例中,第二盐组中包括b个盐,b为正整数。上述步骤603可以包括如下几个子步骤:
1、将第j-1轮加密结果和第二盐组中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果,其中,j的初始值为1,当j=1时,第j-1轮加密结果(也即第0轮加密结果)为用户身份信息;
2、当j小于b时,令j=j+1,并再次从上述步骤1开始执行,直至j等于b时结束流程,并将第j轮加密结果确定为密钥。
示例性地,假设b=4,也即第二盐组中包括4个盐,分别记为salt4、salt5、salt6和salt7,假设用户身份信息以A表示,密钥以secret key表示,则生成secretkey的过程如下:(1)对A+salt4进行一次哈希计算得到D,(2)对D+salt5进行一次哈希计算得到E,(3)对E+salt6进行一次哈希计算得到F,(4)对F+salt7进行一次哈希计算得到secret key。上述+表示将两个字符串拼接。
上述生成密钥的算法可以称为PBKDF2算法。其中,第二盐组中盐的数量b可以根据对复杂度的需求预先设定,若复杂度需求较高,则b的取值越大,对密钥进行破解的难度也越大。将加密结果和盐拼接,可以是将盐拼接在加密结果后面,也即加密结果的最后一个字符与盐的第一个字符相拼接;也可以将加密结果拼接在盐后面,也即盐的最后一个字符与加密结果的第一个字符相拼接;或者采用其它组合方式将两者拼接。哈希计算所采用的算法可以是SHA256算法、SHA1算法、MD5算法等,本发明实施例对此不作限定。
另外,在本发明实施例中,对上述步骤602和步骤603的执行顺序不作限定,步骤603可以在步骤602之后执行,也可以在步骤602之前执行,或者与步骤602同时执行。
步骤604,从第二应用的信息数据库中获取与用户标识对应存储的加密信息。
当需要获取任一用户的信息时,基于该用户的用户身份信息分别生成该用户的用户标识和密钥,而后以该用户的用户标识作为主键,从信息数据库中获取与该用户的用户标识对应存储的加密信息,该获取到的加密信息即为该用户的加密后的信息。
步骤605,采用密钥对加密信息解密,得到明文信息。
在获取到加密信息之后,使用与加密生成加密信息时所采用的加密算法相对应的解密算法,采用密钥对加密信息进行解密,得到明文信息。
综上所述,本发明实施例提供的信息获取方法,通过以用户身份信息作为基础字符串,采用加盐加密算法对用户身份信息进行加密,得到用户标识和密钥,采用上述用户标识获取相应的加密信息,而后采用密钥对加密信息解密得到明文信息;一方面,明文信息需要采用密钥进行解密得到,且密钥是经过加盐加密算法生成的,相较于直接采用哈希算法对信息进行加密后存储,本发明实施例中的加密信息破解难度提升,安全性提高;另一方面,用户标识也是经过加盐加密算法生成的,而非明文的用户帐号,从而在想要获取某一用户已存储的信息时,不能够直接基于该用户的用户帐号找到相应的信息,需要生成准确的用户标识才能找到相应的信息,使得破解难度进一步提升,安全性进一步提高。
请参考图7,其示出了本发明另一个实施例提供的信息获取方法的流程图。该方法可以包括如下几个步骤:
步骤701,获取由第一应用生成的用户在第二应用中的用户身份信息。
步骤701与图6实施例中的步骤601相同,参见图6实施例中的介绍说明,本实施例对此不再赘述。
步骤702,对用户身份信息执行至少一次哈希计算,得到一字符串作为盐标识。
盐标识也称为盐ID,是用户在盐数据库中的唯一标识信息。对于不同的用户来说,由于其用户身份信息不同,因此经过哈希计算得到的盐标识也不同,即不同的用户在盐数据库中具有不同的盐标识。盐数据库是指用于存储对用户的信息进行加密存储时所用到的盐(也即上文提到的第一盐组和第二盐组)的数据库。在盐数据库中,将盐标识和盐对应存储。
在一种可能的实施方式中,对用户身份信息执行一次哈希计算,得到一字符串作为盐标识。
在另一种可能的实施方式中,对用户身份信息执行第一次哈希计算,得到一字符串作为盐;将用户身份信息和盐拼接,对拼接后字符串执行第二次哈希计算,得到一字符串作为盐标识。其中,将用户身份信息和盐拼接,可以是将盐拼接在用户身份信息后面,也即用户身份信息的最后一个字符与盐的第一个字符相拼接;也可以将用户身份信息拼接在盐后面,也即盐的最后一个字符与用户身份信息的第一个字符相拼接;或者采用其它组合方式将两者拼接。哈希计算所采用的算法可以是SHA256算法、SHA1算法、MD5算法等,本发明实施例对此不作限定。相较于上述第一种实施方式,采用本实施方式生成的盐标识的破解难度更大。
步骤703,获取与盐标识对应存储的第一盐组和第二盐组。
第一盐组和第二盐组中的每一个盐均随机生成,也即每一个盐均是一个随机生成的字符串。第一盐组中包括至少一个盐,第二盐组中包括至少一个盐。
当需要获取任一用户的盐时,以该用户的盐标识作为主键,从盐数据库中获取与该用户的盐标识对应存储的第一盐组和第二盐组,上述获取到的第一盐组和第二盐组即为生成该用户的用户标识和密钥时所使用到的盐,在后续的解密过程中,同样使用该第一盐组和第二盐组生成该用户的用户标识和密钥。
步骤704,采用第一盐组对用户身份信息执行至少一轮加密得到用户标识。
步骤705,采用第二组盐对用户身份信息执行至少一轮加密得到密钥。
步骤706,从第二应用的信息数据库中获取与用户标识对应存储的加密信息。
步骤707,采用密钥对加密信息解密,得到明文信息。
上述步骤704-707与图6实施例中的步骤602-605相同,参见图6实施例中的介绍说明,本实施例对此不再赘述。
结合参考图8,其示出了本发明实施例涉及的信息获取过程的示意图。该过程主要包括如下4部分:
1、生成盐标识,查询盐数据库获取对应的盐
对用户身份信息执行一次哈希计算,得到一字符串作为盐;将用户身份信息和盐拼接,对拼接后字符串执行一次哈希计算,得到一字符串作为盐标识。以盐标识作为主键,从盐数据库中获取与该盐标识对应的第一盐组和第二盐组。上述第1部分与图7实施例中的步骤701-703相对应。
2、生成用户标识
采用PBKDF2算法使用第一盐组对用户身份信息进行加密得到用户标识。以用户标识作为主键,从信息数据库中获取与用户标识对应的加密信息。上述第2部分与图7实施例中的步骤704相对应。
3、生成密钥
采用PBKDF2算法使用第二盐组对用户身份信息进行加密得到密钥。上述第3部分与图7实施例中的步骤705相对应。
4、解密过程
采用密钥对获取到的加密信息进行解密,得到明文信息。上述第4部分与图7实施例中的步骤706-707相对应。
综上所述,本发明实施例提供的信息获取方法,通过以用户身份信息作为基础字符串,采用加盐加密算法对用户身份信息进行加密,得到用户标识和密钥,采用上述用户标识获取相应的加密信息,而后采用密钥对加密信息解密得到明文信息;一方面,明文信息需要采用密钥进行解密得到,且密钥是经过加盐加密算法生成的,相较于直接采用哈希算法对信息进行加密后存储,本发明实施例中的加密信息破解难度提升,安全性提高;另一方面,用户标识也是经过加盐加密算法生成的,而非明文的用户帐号,从而在想要获取某一用户已存储的信息时,不能够直接基于该用户的用户帐号找到相应的信息,需要生成准确的用户标识才能找到相应的信息,使得破解难度进一步提升,安全性进一步提高。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
请参考图9,其示出了本发明一个实施例提供的信息存储装置的框图。该装置具有实现上述方法示例提供的信息存储方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:信息获取模块910、第一加密模块920、第二加密模块930、第三加密模块940和信息存储模块950。
信息获取模块910,用于获取由第一应用生成的用户在第二应用中的用户身份信息。
第一加密模块920,用于采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,所述第一盐组中包括至少一个盐。
第二加密模块930,采用第二组盐对所述用户身份信息执行至少一轮加密得到密钥,所述第二盐组中包括至少一个盐。
第三加密模块940,用于采用所述密钥对待存储信息加密,得到加密信息。
信息存储模块950,用于将所述用户标识和所述加密信息对应存储至所述第二应用的信息数据库中。
综上所述,本发明实施例提供的信息存储装置,通过以用户身份信息作为基础字符串,采用加盐加密算法对用户身份信息进行加密,得到用户标识和密钥,采用上述密钥对待存储信息加密得到加密信息,而后将用户标识和加密信息对应存储;一方面,加密信息是采用密钥进行加密后得到的,且密钥是经过加盐加密算法生成的,相较于直接采用哈希算法对待存储信息进行加密后存储,本发明实施例中的加密信息破解难度提升,安全性提高;另一方面,用户标识也是经过加盐加密算法生成的,而非明文的用户帐号,从而在想要获取某一用户已存储的信息时,不能够直接基于该用户的用户帐号找到相应的信息,需要生成准确的用户标识才能找到相应的信息,使得破解难度进一步提升,安全性进一步提高。
在基于图9实施例提供的一个可选实施例中,所述第一盐组中包括a个盐,所述a为正整数;
所述第一加密模块920,用于:
将第i-1轮加密结果和所述第一盐组中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果,其中,所述i的初始值为1,当i=1时,所述第i-1轮加密结果为所述用户身份信息;
当i小于a时,令i=i+1,并再次从所述将第i-1轮加密结果和所述第一盐组中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果的步骤开始执行,直至i等于a时结束流程,并将所述第i轮加密结果确定为所述用户标识。
在基于图9实施例提供的另一个可选实施例中,所述第二盐组中包括b个盐,所述b为正整数;
所述第二加密模块930,用于:
将第j-1轮加密结果和所述第二盐组中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果,其中,所述j的初始值为1,当j=1时,所述第j-1轮加密结果为所述用户身份信息;
当j小于b时,令j=j+1,并再次从所述将第j-1轮加密结果和所述第二盐组中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果的步骤开始执行,直至j等于b时结束流程,并将所述第j轮加密结果确定为所述密钥。
在基于图9实施例提供的另一个可选实施例中,所述装置还包括:盐生成模块、盐标识生成模块和盐存储模块(图中未示出)。
盐生成模块,用于生成所述第一盐组和所述第二盐组,其中,所述第一盐组和所述第二盐组中的每一个盐均随机生成。
盐标识生成模块,用于对所述用户身份信息执行至少一次哈希计算,得到一字符串作为盐标识。
盐存储模块,用于将所述盐标识和所述第一盐组、所述第二盐组对应存储。
可选地,盐标识生成模块,用于对所述用户身份信息执行第一次哈希计算,得到一字符串作为盐;将所述用户身份信息和所述盐拼接,对拼接后字符串执行第二次哈希计算,得到一字符串作为所述盐标识。
请参考图10,其示出了本发明一个实施例提供的信息获取装置的框图。该装置具有实现上述方法示例提供的信息获取方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:信息获取模块1010、第一加密模块1020、第二加密模块1030、信息获取模块1040和信息解密模块1050。
信息获取模块1010,用于获取由第一应用生成的用户在第二应用中的用户身份信息。
第一加密模块1020,用于采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,所述第一盐组中包括至少一个盐。
第二加密模块1030,用于采用第二组盐对所述用户身份信息执行至少一轮加密得到密钥,所述第二盐组中包括至少一个盐。
信息获取模块1040,用于从所述第二应用的信息数据库中获取与所述用户标识对应存储的加密信息。
信息解密模块1050,用于采用所述密钥对所述加密信息解密,得到明文信息。
综上所述,本发明实施例提供的信息获取装置,通过以用户身份信息作为基础字符串,采用加盐加密算法对用户身份信息进行加密,得到用户标识和密钥,采用上述用户标识获取相应的加密信息,而后采用密钥对加密信息解密得到明文信息;一方面,明文信息需要采用密钥进行解密得到,且密钥是经过加盐加密算法生成的,相较于直接采用哈希算法对信息进行加密后存储,本发明实施例中的加密信息破解难度提升,安全性提高;另一方面,用户标识也是经过加盐加密算法生成的,而非明文的用户帐号,从而在想要获取某一用户已存储的信息时,不能够直接基于该用户的用户帐号找到相应的信息,需要生成准确的用户标识才能找到相应的信息,使得破解难度进一步提升,安全性进一步提高。
在基于图10实施例提供的一个可选实施例中,所述第一盐组中包括a个盐,所述a为正整数;
所述第一加密模块1020,用于:
将第i-1轮加密结果和所述第一盐组中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果,其中,所述i的初始值为1,当i=1时,所述第i-1轮加密结果为所述用户身份信息;
当i小于a时,令i=i+1,并再次从所述将第i-1轮加密结果和所述第一盐组中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果的步骤开始执行,直至i等于a时结束流程,并将所述第i轮加密结果确定为所述用户标识。
在基于图10实施例提供的另一个可选实施例中,所述第二盐组中包括b个盐,所述b为正整数;
所述第二加密模块1030,用于:
将第j-1轮加密结果和所述第二盐组中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果,其中,所述j的初始值为1,当j=1时,所述第j-1轮加密结果为所述用户身份信息;
当j小于b时,令j=j+1,并再次从所述将第j-1轮加密结果和所述第二盐组中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果的步骤开始执行,直至j等于b时结束流程,并将所述第j轮加密结果确定为所述密钥。
在基于图10实施例提供的另一个可选实施例中,所述装置还包括:盐标识生成模块和盐获取模块(图中未示出)。
盐标识生成模块,用于对所述用户身份信息执行至少一次哈希计算,得到一字符串作为盐标识。
盐获取模块,用于获取与所述盐标识对应存储的所述第一盐组和所述第二盐组,其中,所述第一盐组和所述第二盐组中的每一个盐均随机生成。
可选地,盐标识生成模块,用于:对所述用户身份信息执行第一次哈希计算,得到一字符串作为盐;将所述用户身份信息和所述盐拼接,对拼接后字符串执行第二次哈希计算,得到一字符串作为所述盐标识。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图11,其示出了本发明一个实施例提供的计算机设备的结构示意图。例如,该计算机设备可以是服务器,用于实施上述实施例提供的方法。具体来讲:
所述计算机设备1100包括中央处理单元(CPU)1101、包括随机存取存储器(RAM)1102和只读存储器(ROM)1103的***存储器1104,以及连接***存储器1104和中央处理单元1101的***总线1105。所述计算机设备1100还包括帮助计算机内的各个器件之间传输信息的基本输入/输出***(I/O***)1106,和用于存储操作***1113、应用程序1114和其他程序模块1115的大容量存储设备1107。
所述基本输入/输出***1106包括有用于显示信息的显示器1108和用于用户输入信息的诸如鼠标、键盘之类的输入设备1109。其中所述显示器1108和输入设备1109都通过连接到***总线1105的输入输出控制器1110连接到中央处理单元1101。所述基本输入/输出***1106还可以包括输入输出控制器1110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1110还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1107通过连接到***总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。所述大容量存储设备1107及其相关联的计算机可读介质为计算机设备1100提供非易失性存储。也就是说,所述大容量存储设备1107可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的***存储器1104和大容量存储设备1107可以统称为存储器。
根据本发明的各种实施例,所述计算机设备1100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1100可以通过连接在所述***总线1105上的网络接口单元1111连接到网络1112,或者说,也可以使用网络接口单元1111来连接到其他类型的网络或远程计算机***。
所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现上述信息存储方法或者信息获取方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时实现如上述信息存储方法或者信息获取方法中各个步骤的功能。
可选地,上述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本发明的示例性实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种信息存储方法,其特征在于,所述方法包括:
获取由第一应用生成的用户帐号在第二应用中的用户身份信息,其中,所述第二应用在获取所述用户身份信息时,调用所述第一应用向所述第二应用提供所述用户身份信息;
采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,所述第一盐组中包括至少一个盐;
采用第二盐组对所述用户身份信息执行至少一轮加密得到密钥,所述第二盐组中包括至少一个盐;
采用所述密钥对待存储信息加密,得到加密信息;
将所述用户标识和所述加密信息对应存储至所述第二应用的信息数据库中。
2.根据权利要求1所述的方法,其特征在于,所述第一盐组中包括a个盐,所述a为正整数;
所述采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,包括:
将第i-1轮加密结果和所述第一盐组中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果,其中,所述i的初始值为1,当i=1时,所述第i-1轮加密结果为所述用户身份信息;
当i小于a时,令i=i+1,并再次从所述将第i-1轮加密结果和所述第一盐组中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果的步骤开始执行,直至i等于a时结束流程,并将所述第i轮加密结果确定为所述用户标识。
3.根据权利要求1所述的方法,其特征在于,所述第二盐组中包括b个盐,所述b为正整数;
所述采用第二盐组对所述用户身份信息执行至少一轮加密得到密钥,包括:
将第j-1轮加密结果和所述第二盐组中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果,其中,所述j的初始值为1,当j=1时,所述第j-1轮加密结果为所述用户身份信息;
当j小于b时,令j=j+1,并再次从所述将第j-1轮加密结果和所述第二盐组中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果的步骤开始执行,直至j等于b时结束流程,并将所述第j轮加密结果确定为所述密钥。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
生成所述第一盐组和所述第二盐组,其中,所述第一盐组和所述第二盐组中的每一个盐均随机生成;
对所述用户身份信息执行至少一次哈希计算,得到一字符串作为盐标识;
将所述盐标识和所述第一盐组、所述第二盐组对应存储。
5.根据权利要求4所述的方法,其特征在于,所述对所述用户身份信息执行至少一次哈希计算,得到一字符串作为盐标识,包括:
对所述用户身份信息执行第一次哈希计算,得到一字符串作为盐;
将所述用户身份信息和所述盐拼接,对拼接后字符串执行第二次哈希计算,得到一字符串作为所述盐标识。
6.一种信息获取方法,其特征在于,所述方法包括:
获取由第一应用生成的用户帐号在第二应用中的用户身份信息,其中,所述第二应用在获取所述用户身份信息时,调用所述第一应用向所述第二应用提供所述用户身份信息;
采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,所述第一盐组中包括至少一个盐;
采用第二盐组对所述用户身份信息执行至少一轮加密得到密钥,所述第二盐组中包括至少一个盐;
从所述第二应用的信息数据库中获取与所述用户标识对应存储的加密信息;
采用所述密钥对所述加密信息解密,得到明文信息。
7.根据权利要求6所述的方法,其特征在于,所述第一盐组中包括a个盐,所述a为正整数;
所述采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,包括:
将第i-1轮加密结果和所述第一盐组中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果,其中,所述i的初始值为1,当i=1时,所述第i-1轮加密结果为所述用户身份信息;
当i小于a时,令i=i+1,并再次从所述将第i-1轮加密结果和所述第一盐组中的第i个盐拼接,对拼接后字符串执行一次哈希计算得到第i轮加密结果的步骤开始执行,直至i等于a时结束流程,并将所述第i轮加密结果确定为所述用户标识。
8.根据权利要求6所述的方法,其特征在于,所述第二盐组中包括b个盐,所述b为正整数;
所述采用第二盐组对所述用户身份信息执行至少一轮加密得到密钥,包括:
将第j-1轮加密结果和所述第二盐组中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果,其中,所述j的初始值为1,当j=1时,所述第j-1轮加密结果为所述用户身份信息;
当j小于b时,令j=j+1,并再次从所述将第j-1轮加密结果和所述第二盐组中的第j个盐拼接,对拼接后字符串执行一次哈希计算得到第j轮加密结果的步骤开始执行,直至j等于b时结束流程,并将所述第j轮加密结果确定为所述密钥。
9.根据权利要求6至8任一项所述的方法,其特征在于,所述获取由第一应用生成的用户帐号在第二应用中的用户身份信息之后,还包括:
对所述用户身份信息执行至少一次哈希计算,得到一字符串作为盐标识;
获取与所述盐标识对应存储的所述第一盐组和所述第二盐组,其中,所述第一盐组和所述第二盐组中的每一个盐均随机生成。
10.根据权利要求9所述的方法,其特征在于,所述对所述用户身份信息执行至少一次哈希计算,得到一字符串作为盐标识,包括:
对所述用户身份信息执行第一次哈希计算,得到一字符串作为盐;
将所述用户身份信息和所述盐拼接,对拼接后字符串执行第二次哈希计算,得到一字符串作为所述盐标识。
11.一种信息存储装置,其特征在于,所述装置包括:
信息获取模块,用于获取由第一应用生成的用户帐号在第二应用中的用户身份信息,其中,所述第二应用在获取所述用户身份信息时,调用所述第一应用向所述第二应用提供所述用户身份信息;
第一加密模块,用于采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,所述第一盐组中包括至少一个盐;
第二加密模块,用于采用第二盐组对所述用户身份信息执行至少一轮加密得到密钥,所述第二盐组中包括至少一个盐;
第三加密模块,用于采用所述密钥对待存储信息加密,得到加密信息;
信息存储模块,用于将所述用户标识和所述加密信息对应存储至所述第二应用的信息数据库中。
12.一种信息获取装置,其特征在于,所述装置包括:
信息获取模块,用于获取由第一应用生成的用户帐号在第二应用中的用户身份信息,其中,所述第二应用在获取所述用户身份信息时,调用所述第一应用向所述第二应用提供所述用户身份信息;
第一加密模块,用于采用第一盐组对所述用户身份信息执行至少一轮加密得到用户标识,所述第一盐组中包括至少一个盐;
第二加密模块,用于采用第二盐组对所述用户身份信息执行至少一轮加密得到密钥,所述第二盐组中包括至少一个盐;
信息获取模块,用于从所述第二应用的信息数据库中获取与所述用户标识对应存储的加密信息;
信息解密模块,用于采用所述密钥对所述加密信息解密,得到明文信息。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被所述处理器执行时实现如权利要求1至10任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被执行时实现如权利要求1至10任一项所述的方法。
CN201711179733.6A 2017-11-23 2017-11-23 信息存储方法、获取方法、装置及设备 Active CN107948152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711179733.6A CN107948152B (zh) 2017-11-23 2017-11-23 信息存储方法、获取方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711179733.6A CN107948152B (zh) 2017-11-23 2017-11-23 信息存储方法、获取方法、装置及设备

Publications (2)

Publication Number Publication Date
CN107948152A CN107948152A (zh) 2018-04-20
CN107948152B true CN107948152B (zh) 2021-05-14

Family

ID=61930868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711179733.6A Active CN107948152B (zh) 2017-11-23 2017-11-23 信息存储方法、获取方法、装置及设备

Country Status (1)

Country Link
CN (1) CN107948152B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108616533B (zh) * 2018-04-27 2021-02-19 正方软件股份有限公司 敏感数据加密方法及装置
CN109599170A (zh) * 2018-12-05 2019-04-09 易必祥 基于大数据的医药管理方法及***
CN109858255A (zh) * 2018-12-19 2019-06-07 杭州安恒信息技术股份有限公司 数据加密存储方法、装置及实现装置
CN109670329A (zh) * 2018-12-28 2019-04-23 东信和平科技股份有限公司 一种服务器数据安全导入导出方法及服务器
CN110048835A (zh) * 2019-03-27 2019-07-23 北京三快在线科技有限公司 加密的方法和装置、存储介质
CN110008745B (zh) * 2019-03-29 2024-01-16 深圳供电局有限公司 一种加密方法、计算机设备和计算机存储介质
CN110717827B (zh) * 2019-09-03 2022-08-30 网联清算有限公司 数据库的确定方法、装置和交易处理***
CN111062047B (zh) * 2019-12-25 2022-07-08 中国联合网络通信集团有限公司 数据存储方法、***、设备及存储介质
CN110781419B (zh) * 2020-01-02 2020-04-28 成都四方伟业软件股份有限公司 一种基于区块链的多***配合使用的方法
CN113486375B (zh) * 2021-07-16 2024-04-19 青岛海尔科技有限公司 设备信息的存储方法和装置、存储介质及电子装置
CN115242540B (zh) * 2022-08-03 2023-09-26 平安银行股份有限公司 数据处理方法与***
CN115438324A (zh) * 2022-09-20 2022-12-06 中国建设银行股份有限公司 一种身份验证方法、装置及设备

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716206B2 (en) * 2004-11-01 2010-05-11 At&T Intellectual Property I, L.P. Communication networks and methods and computer program products for performing searches thereon while maintaining user privacy
CN102594779A (zh) * 2011-01-05 2012-07-18 ***通信集团公司 一种用户数据处理方法及其设备
CN102638468A (zh) * 2012-04-12 2012-08-15 华为技术有限公司 保护信息传输安全的方法、发送端、接收端及***
CN103116730A (zh) * 2013-01-21 2013-05-22 厦门市美亚柏科信息股份有限公司 一种dpapi加密数据的解密方法和***
CN103179134A (zh) * 2013-04-19 2013-06-26 中国建设银行股份有限公司 基于Cookie的单点登录方法、***及其应用服务器
CN104079539A (zh) * 2013-03-28 2014-10-01 阿里巴巴集团控股有限公司 一种数据保密存储方法及客户端
CN104734854A (zh) * 2013-12-23 2015-06-24 西门子公司 密钥的安全提供
CN105978878A (zh) * 2016-05-11 2016-09-28 腾讯科技(深圳)有限公司 网页验证方法及装置
CN106060078A (zh) * 2016-07-11 2016-10-26 浪潮(北京)电子信息产业有限公司 应用于云平台的用户信息加密方法、注册方法及验证方法
CN106656476A (zh) * 2017-01-18 2017-05-10 腾讯科技(深圳)有限公司 一种密码保护方法及装置
CN107070948A (zh) * 2017-05-23 2017-08-18 广东工业大学 云存储中基于混合加密算法的签名与验证方法
CN107104787A (zh) * 2017-04-26 2017-08-29 山东开创云软件有限公司 一种对抗密码破解的密码设置方法
CN107231346A (zh) * 2017-05-03 2017-10-03 北京海顿中科技术有限公司 一种云平台身份识别的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228417B2 (en) * 2002-02-26 2007-06-05 America Online, Inc. Simple secure login with multiple-authentication providers
US20060095786A1 (en) * 2004-11-01 2006-05-04 Aaron Jeffrey A Communication networks and methods and computer program products for preventing tracking of network activity thereon through use of identity pseudonym domains
US9660972B1 (en) * 2012-06-25 2017-05-23 Amazon Technologies, Inc. Protection from data security threats
US9935948B2 (en) * 2015-09-18 2018-04-03 Case Wallet, Inc. Biometric data hashing, verification and security

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716206B2 (en) * 2004-11-01 2010-05-11 At&T Intellectual Property I, L.P. Communication networks and methods and computer program products for performing searches thereon while maintaining user privacy
CN102594779A (zh) * 2011-01-05 2012-07-18 ***通信集团公司 一种用户数据处理方法及其设备
CN102638468A (zh) * 2012-04-12 2012-08-15 华为技术有限公司 保护信息传输安全的方法、发送端、接收端及***
CN103116730A (zh) * 2013-01-21 2013-05-22 厦门市美亚柏科信息股份有限公司 一种dpapi加密数据的解密方法和***
CN104079539A (zh) * 2013-03-28 2014-10-01 阿里巴巴集团控股有限公司 一种数据保密存储方法及客户端
CN103179134A (zh) * 2013-04-19 2013-06-26 中国建设银行股份有限公司 基于Cookie的单点登录方法、***及其应用服务器
CN104734854A (zh) * 2013-12-23 2015-06-24 西门子公司 密钥的安全提供
CN105978878A (zh) * 2016-05-11 2016-09-28 腾讯科技(深圳)有限公司 网页验证方法及装置
CN106060078A (zh) * 2016-07-11 2016-10-26 浪潮(北京)电子信息产业有限公司 应用于云平台的用户信息加密方法、注册方法及验证方法
CN106656476A (zh) * 2017-01-18 2017-05-10 腾讯科技(深圳)有限公司 一种密码保护方法及装置
CN107104787A (zh) * 2017-04-26 2017-08-29 山东开创云软件有限公司 一种对抗密码破解的密码设置方法
CN107231346A (zh) * 2017-05-03 2017-10-03 北京海顿中科技术有限公司 一种云平台身份识别的方法
CN107070948A (zh) * 2017-05-23 2017-08-18 广东工业大学 云存储中基于混合加密算法的签名与验证方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
前端数据加密分析;潘潘;《计算机与网络》;20170826(第16期);全文 *
口令加密算法安全性分析与对比;祁鑫;《网络空间安全》;20170306;第7卷(第11期);第34-38页 *

Also Published As

Publication number Publication date
CN107948152A (zh) 2018-04-20

Similar Documents

Publication Publication Date Title
CN107948152B (zh) 信息存储方法、获取方法、装置及设备
EP3910907B1 (en) Retrieving access data for blockchain networks using highly available trusted execution environments
EP3610606B1 (en) Managing sensitive data elements in a blockchain network
CA3058236C (en) Retrieving public data for blockchain networks using highly available trusted execution environments
CN109074579B (zh) 使用分布式散列表和区块链保护计算机软件的方法及***
US10402571B2 (en) Community-based de-duplication for encrypted data
US10091230B1 (en) Aggregating identity data from multiple sources for user controlled distribution to trusted risk engines
US10917249B2 (en) Processing data elements stored in blockchain networks
US20150143107A1 (en) Data security tools for shared data
US10536276B2 (en) Associating identical fields encrypted with different keys
US10120870B2 (en) System and method for searching distributed files across a plurality of clients
CN111737720A (zh) 数据处理方法、装置及电子设备
CN111917711B (zh) 数据访问方法、装置、计算机设备和存储介质
JP2019079280A (ja) ファイル検証装置、ファイル移行システムおよびプログラム
KR20220092811A (ko) 암호화 데이터를 저장하는 방법 및 장치
CN115694949A (zh) 一种基于区块链的隐私数据共享方法及***
CN116583833A (zh) 自审计区块链
CN109828832B (zh) 基于区块链的数据流通方法、装置、设备和介质
US20200097457A1 (en) Data management method, data management apparatus, and non-transitory computer readable medium
WO2020130864A1 (en) System for automatic management and depositing of documents (images) hash in block-chain technology
CN113609531B (zh) 基于区块链的信息交互方法、装置、设备、介质和产品
US11856085B2 (en) Information management system and method for the same
CN117034370B (zh) 基于区块链网络的数据处理方法及相关设备
US20230291583A1 (en) System And Method For Authenticating Devices
CN114912084A (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
GR01 Patent grant
GR01 Patent grant