CN111611576B - 账户密钥验证方法、装置及计算机存储介质 - Google Patents

账户密钥验证方法、装置及计算机存储介质 Download PDF

Info

Publication number
CN111611576B
CN111611576B CN202010361856.7A CN202010361856A CN111611576B CN 111611576 B CN111611576 B CN 111611576B CN 202010361856 A CN202010361856 A CN 202010361856A CN 111611576 B CN111611576 B CN 111611576B
Authority
CN
China
Prior art keywords
account
key
value
salt
storage file
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
CN202010361856.7A
Other languages
English (en)
Other versions
CN111611576A (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.)
NR Electric Co Ltd
NR Engineering Co Ltd
Original Assignee
NR Electric Co Ltd
NR Engineering 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 NR Electric Co Ltd, NR Engineering Co Ltd filed Critical NR Electric Co Ltd
Priority to CN202010361856.7A priority Critical patent/CN111611576B/zh
Publication of CN111611576A publication Critical patent/CN111611576A/zh
Application granted granted Critical
Publication of CN111611576B publication Critical patent/CN111611576B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • 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/602Providing cryptographic facilities or services
    • 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/604Tools and structures for managing or administering access control systems
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

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

Abstract

本发明公开了一种账户密钥验证方法、装置及计算机存储介质。其中,方法包括:获取用户账户的账户名称和账户密钥;在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,并基于存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,确定共享盐值;所述对应的账户密钥盐值和密钥哈希值以明文形式记录在账户存储文件中;根据获取的账户密钥、所述对应的账户密钥盐值和共享盐值进行哈希计算,获得密钥哈希计算值;将所述密钥哈希计算值与获取的密钥哈希值进行比较,得到比较结果;根据所述比较结果确定所述用户账户是否通过验证。

Description

账户密钥验证方法、装置及计算机存储介质
技术领域
本发明涉及账户访问控制技术领域,尤其涉及一种账户密钥验证方法、装置及计算机存储介质。
背景技术
随着科技的发展,账户信息的安全显得越来越重要。账户访问控制系统对于用户账户的管理也越来越严格和隐蔽化。特别是在一些重要领域,如电力系统,如果不对用户账户信息采取有效的安全措施,可能会给用户造成无法估量的经济损失。
目前,对账户信息进行加密后存储是一种常见的安全存储方法。在电力系统中,采用同一加密密钥对账户信息进行加密保护。而采用同一加密密钥对多个账户信息进行保护的方式,往往会导致当这个加密密钥被泄漏或破解时,多个账户信息中的账户密钥存在被破解的风险,使得账户信息安全存在风险。
发明内容
为解决相关技术问题,本发明实施例提供一种账户密钥验证方法、装置及计算机存储介质。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种账户密钥验证方法,包括:
获取用户账户的账户名称和账户密钥;
在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,并基于存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,确定共享盐值;所述对应的账户密钥盐值和密钥哈希值以明文形式记录在账户存储文件中;
根据获取的账户密钥、所述对应的账户密钥盐值和共享盐值进行哈希计算,获得密钥哈希计算值;
将所述密钥哈希计算值与获取的密钥哈希值进行比较,得到比较结果;
根据所述比较结果确定所述用户账户是否通过验证。
上述方案中,所述根据获取的账户密钥、所述对应的账户密钥盐值和共享盐值进行哈希计算,获得密钥哈希计算值,包括:
利用所述获取的账户密钥、所述对应的账户密钥盐值和共享盐值,构建字符串;
对所述字符串进行哈希计算,获得密钥哈希计算值。
上述方案中,所述利用所述获取的账户密钥、所述对应的账户密钥盐值和共享盐值,构建字符串,包括:
将所述获取的账户密钥、所述对应的账户密钥盐值和共享盐值按照第一顺序进行排列,得到所述字符串。
上述方案中,所述基于存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,确定共享盐值,包括:
获取存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息;
在映射表中查询与所述属性信息对应的共享盐值;所述映射表包含账户存储文件的属性信息与共享盐值的映射关系。
上述方案中,所述在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,包括:
从账户存储文件中获取与所述获取的账户名称对应的账户密钥内容;
利用获取的账户密钥内容,获得所述对应的账户密钥盐值和密钥哈希值。
上述方案中,所述利用获取的账户密钥内容,获得所述对应的账户密钥盐值和密钥哈希值,包括:
基于第一提取策略,对所述内容进行字符提取,将提取的字符作为所述对应的账户密钥盐值;将所述内容中除所述提取的字符外的其他字符中的全部或部分作为所述对应的密钥哈希值;
或者,
基于第二提取策略,对所述内容进行字符提取,将提取的字符作为所述对应的密钥哈希值;将所述内容中除所述提取的字符外的其他字符中的全部或部分作为所述对应的账户密钥盐值。
上述方案中,所述在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,包括:
根据所述获取的账户名称遍历本地的账户存储文件;
在所述账户存储文件中存在获取的账户名称的情况下,根据获取的账户名称从账户存储文件中获取对应的账户密钥盐值和密钥哈希值。
本发明实施例还提供了一种账户密钥验证装置,包括:
第一获取单元,用于获取用户账户的账户名称和账户密钥;
所述第二获取单元,用于在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,并基于存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,确定共享盐值;所述对应的账户密钥盐值和密钥哈希值以明文形式记录在账户存储文件中;
计算单元,用于根据获取的账户密钥、所述对应的账户密钥盐值和共享盐值进行哈希计算,获得密钥哈希计算值;
比较单元,用于将所述密钥哈希计算值与获取的密钥哈希值进行比较,得到比较结果;
验证单元,用于根据所述比较结果确定所述用户账户是否通过验证。
本发明实施例还提供了一种账户密钥验证装置,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行上述任一方法的步骤。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时,执行上述任一方法的步骤。
本发明实施例提供的账户密钥验证方法、装置及计算机存储介质,获取用户账户的账户名称和账户密钥;在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,并基于存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,确定共享盐值;所述对应的账户密钥盐值和密钥哈希值以明文形式记录在账户存储文件中;根据获取的账户密钥、所述对应的账户密钥盐值和共享盐值进行哈希计算,获得密钥哈希计算值;将所述密钥哈希计算值与获取的密钥哈希值进行比较,得到比较结果;根据所述比较结果确定所述用户账户是否通过验证,采用账户密钥盐值和共享盐值,并结合了哈希算法来对用户账户进行验证,且需要基于存储用户密钥盐值和密钥哈希值的账户存储文件的属性信息去确定共享盐值,而确定共享盐值的方式是不容易获知的,如此,增强了用户账户信息被破解的难度,从而提高了用户账户信息的安全性。
附图说明
图1为本发明实施例账户密钥验证方法的流程示意图;
图2为本发明应用实施例账户存储文件的文档示意图;
图3为本发明应用实施例账户密钥验证方法的流程示意图;
图4为本发明实施例账户密钥验证装置结构示意图;
图5为本发明实施例账户密钥验证装置硬件结构示意图。
具体实施方式
下面将结合附图及实施例对本发明作进一步详细的描述。
在电力系统中,基于账户名和账户密钥机制的访问控制技术有着广泛的应用;随着对网络安全的进一步重视,这种访问控制技术的应用会更加广泛。账户信息的安全存储是访问控制技术的核心之一,如果账户密钥失窃或造破解,可能带来重大安全风险,甚至带来不可估计的经济损失。任何以明文存储账户密钥的方式,无论存储在多隐蔽的文件或数据库中,都存在被泄漏与窃取的风险。
基于此,可以采用对用户的账户信息进行加密后存储,这是一种常见的安全存储方法,该方法降低了账户密钥被直接窃取的风险,具有一定的存储安全性。然而,在对账户信息进行加密存储时,通常使用同一个加密密钥对多个账户信息进行加密保护,那么,在这种情况下,如果加密密钥被泄漏或破解,则会存在多个账户信息失窃的风险。另外,在验证登入账户信息的过程中,被加密的账户信息需解密后使用,而解密过程会导致存储的账户信息,甚至多个账户信息以明文临时存储在内存中,这样就会存在账户信息被常见木马、病毒的内存攻击方法破解,被直接从内存窃取的风险。
从上面的描述可以看出,无论是明文存储还是加密存储账户信息,都无法解决任一账户信息被破解不影响其他账户信息的安全性问题。另外,对账户信息进行加密存储,还面临加密密钥安全存储和加解密过程对资源需求多的问题,难以在资源受限领域中进行广泛应用。
基于此,在本发明的各种实施例中,以明文方式在本地账户存储文件中记录账户密钥盐值和密钥哈希值,存储的账户信息不涉及账户密钥,并通过账户存储文件以验证登入账户密钥哈希值的方式对账户身份进行合法性验证。
本发明实施例提供了一种账户密钥验证方法,应用于控制设备(是指访问控制系统中的设备,用于管理用户账户)中,如图1所示,该方法包括:
步骤101:获取用户账户的账户名称和账户密钥;
步骤102:在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,并基于存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,确定共享盐值;
这里,所述对应的账户密钥盐值和密钥哈希值以明文形式记录在账户存储文件中;
步骤103:根据所述获取的账户密钥、所述对应的账户密钥盐值和共享盐值进行哈希计算,获得密钥哈希计算值;
步骤104:将所述密钥哈希计算值与获取的密钥哈希值进行比较,得到比较结果;
步骤105:根据所述比较结果确定所述用户账户是否通过验证。
实际应用时,本发明实施例提供的方法可用于电力系统进行账户密钥的验证,也可用于其他系统(如银行系统)进行账户密钥的验证。
在步骤101中,实际应用时,可以通过用户输入的方式获得账户名称和账户密钥;具体地,用户可通过终端设备输入账户名称和账户密钥。其中,在通过终端设备输入账户名称和账户密钥时,可以通过在终端设备呈现的网页输入账户名称和账户密钥,也可以通过在终端设备运行的应用程序(APP),输入账户名称和账户密钥。
实际应用时,会将多个账户信息存在一个账户存储文件中,以便对多个账户信息进行集中管理和保存。
基于此,在步骤102中,可以根据账户名称在本地遍历本地的账户存储文件获取对应的账户密钥盐值和密钥哈希值。
具体地,根据所述获取的账户名称遍历本地的账户存储文件;
在所述账户存储文件中存在获取的账户名称的情况下,根据获取的账户名称从账户存储文件中获取对应的账户密钥盐值和密钥哈希值。
这里,账户密钥盐值和密钥哈希值,与账户名称一一对应,也就是说,一个账户名称对应一个账户密钥盐值和密钥哈希值。
实际应用时,当本地账户存储文件中不存在获取的账户名称时,则判定用户账户验证失败,进而可以提示账户不存在或执行用户账户注册。
账户密钥盐值可以理解为在一个账户在一个系统注册时,针对该账户设定的,进行验证所使用的账户私钥。相应地,共享盐值可以理解为一个系统针对多个账户设定的,进行验证所使用的账户公钥。密钥哈希值可以理解为:在该账户注册时,根据该账户的账户密钥盐值、用户设定的账户密钥和系统共享盐值进行哈希计算获得的计算结果。
在实际应用时,账户密钥盐值和密钥哈希值可以以明文形式进行存储;具体地,可以将账户密钥盐值和密钥哈希值以组合成一个字符串的形式进行明文存储。将账户密钥盐值和密钥哈希值以明文形式进行存储,不直接涉及账户密钥的存储,无需对账户密钥进行加密,从而减少了解密账户密钥需将账户密钥存放在本地时账户密钥被窃取的风险,进而提高了用户账户的安全性。
在一实施例中,所述在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,包括:
从账户存储文件中获取与所述获取的账户名称对应的账户密钥内容;
利用获取的账户密钥内容,获得所述对应的账户密钥盐值和密钥哈希值。
其中,在实际应用时,密钥哈希值的长度可以根据所采用的哈希算法来决定,比如,采用的哈希算法是SHA256,则密钥哈希值为256比特(bit);账户密钥盐值的长度可以根据需要来设置,比如可以设置账户密钥盐值的长度与密钥哈希值的长度相同;示例性地,当密钥哈希值的长度为256bits时,设置账户密钥盐值的长度为256bits;相应地,账户密钥内容包含账户密钥盐值和密钥哈希值;因此,账户密钥内容的长度可以是账户密钥盐值的长度和密钥哈希值的长度之和,即账户密钥内容的长度为512bits;当然,账户密钥内容还可以包含干扰字符,相应地,账户密钥内容的长度可以大于账户密钥盐值的长度和密钥哈希值的长度之和,示例性地,当密钥哈希值的长度为256bits,且设置账户密钥盐值的长度为256bits时,账户密钥内容的长度大于512bits。
账户密钥盐值和密钥哈希值可以以明文形式进行存储;具体地,可以将账户密钥盐值和密钥哈希值以组合成一个字符串的形式进行明文存储。将账户密钥盐值和密钥哈希值以明文形式进行存储,不直接涉及账户密钥的存储,无需对账户密钥进行加密,从而减少了解密账户密钥需将账户密钥存放在本地时账户密钥被窃取的风险,进而提高了用户账户的安全性。
在一实施例中,所述利用获取的账户密钥内容,获得所述对应的账户密钥盐值和密钥哈希值,包括:
基于第一提取策略,对所述内容进行字符提取,将提取的字符作为所述对应的账户密钥盐值;将所述内容中除所述提取的字符外的其他字符中的全部或部分作为所述对应的密钥哈希值;
或者,
基于第二提取策略,对所述内容进行字符提取,将提取的字符作为所述对应的密钥哈希值;将所述内容中除所述提取的字符外的其他字符中的全部或部分作为所述对应的账户密钥盐值。
这里,基于第一提取策略进行字符提取时,当所述内容包含有干扰字符时,将所述内容中除所述提取的字符外的部分字符作为所述对应的密钥哈希值;当所述内容未包含有干扰字符时,将所述内容中除所述提取的字符外的其他全部字符作为所述对应的密钥哈希值。
其中,当所述内容包含有干扰字符时,先对所述内容进行提取,提取的字符作为账户密钥盐值,再从提取的字符外的其他字符中剔除干扰字符(需要预先设置干扰字符在所述其他字符中的位置,以便能够从所述其他字符中剔除干扰字符),剔除干扰字符后的剩余字符作为密钥哈希值。比如,账户密钥内容为560bits,先提取高位起33-288bits的字符,作为账户密钥盐值,再将余下1-32bits和289-560bits中剔除掉高位起313-360bits的干扰字符,余下的1-32bits和361-560bits合并后作为密钥哈希值。
类似地,基于第二提取策略进行字符提取时,当所述内容包含有干扰字符时,将所述内容中除所述提取的字符外的部分字符作为所述对应的账户密钥盐值;当所述内容未包含有干扰字符时,将所述内容中除所述提取的字符外的其他全部字符作为所述对应的账户密钥盐值。
其中,当所述内容包含有干扰字符时,先对所述内容进行提取,提取的字符作为密钥哈希值,再从提取的字符外的其他字符中剔除干扰字符(需要预先设置干扰字符在所述其他字符中的位置,以便能够从所述其他字符中剔除干扰字符),剔除干扰字符后的剩余字符作为账户密钥盐值。比如,账户密钥内容为560bits,先提取高位起33-288bits的字符,作为密钥哈希值,再将余下1-32bits和289-560bits中剔除掉高位起313-360bits的干扰字符,余下的1-32bits和361-560bits合并后作为账户密钥盐值。
在实际应用时,可以根据需要设置第一提取策略,比如假设账户密钥内容的长度为512bits,且约定账户密钥内容的高位256bits是账户密钥盐值,而剩下的256bits是密钥哈希值,则对内容的高位256bits进行字符提取,获得账户密钥盐值,并将所述内容中低位256bits的字符作为所述对应的密钥哈希值;再比如假设账户密钥内容的长度为512bits,将512bits从高位开始分成均匀的四部分,并将账户密钥盐值和密钥哈希值均分成两部分,第一部分用于放置账户密钥盐值的一部分,第二部分用于设置密钥哈希值的一部分,第三部分用于放置账户密钥盐值的另一部分,第四部分用于设置密钥哈希值的另一部分;相应地,在进行字符提取时,提取第一部分和第三部分的字符,合并后形成账户密钥盐值,将第二部分和第四部分的字符合并,得到密钥哈希值;当然,也可以不均匀分成四部分,约定高位起的1-80bits和177-352bits用于设置账户密钥盐值,高位起81-176bits和353-512bits用于设置密钥哈希值;相应地,在进行字符提取时,提取高位起1-80bits和177-352bits的字符,合并后形成账户密钥盐值,将高位起81-176bits和353-512bits的字符合并后形成密钥哈希值。再比如假设账户密钥内容的长度为512bits,且约定从高位起的33-288bits用于设置账户密钥盐值,高位起的1-32bits和289-512bits用于设置密钥哈希值;相应地,在进行字符提取时,提取高位起的33-288bits的字符形成账户密钥盐值,将高位起的1-32bits和289-512bits的字符合并后形成密钥哈希值;再比如假设账户密钥内容的长度为560bits,约定高位起的33-288bits用于设置账户密钥盐值,高位起的313-360bits用于设置干扰字符,高位起的1-32bits和361-560bits用于设置密钥哈希值;相应地,在进行字符提取时,先提取高位起的33-288bits的字符形成账户密钥盐值,将高位起1-32bits和361-560bits合并后作为密钥哈希值。
相应地,可以根据需要设置第二策略,比如可以假设账户密钥内容的长度为512bits,且约定账户密钥内容的高位256bits是账户密钥盐值,而剩下的低位256bits是密钥哈希值,则对内容的低位256bits进行字符提取,获得密钥哈希值,并将所述内容中低位256bits的字符作为所述对应的账户密钥盐值;比如假设账户密钥内容的长度为512bits,将512bits从高位开始分成均匀的四部分,并将账户密钥盐值和密钥哈希值均分成两部分,第一部分用于放置账户密钥盐值的一部分,第二部分用于设置密钥哈希值的一部分,第三部分用于放置账户密钥盐值的另一部分,第四部分用于设置密钥哈希值的另一部分;相应地,在进行字符提取时,提取第二部分和第四部分的字符合并,得到密钥哈希值,将第一部分和第三部分的字符,合并后形成账户密钥盐值;当然,也可以不均匀分成四部分,约定高位起的1-80bits和177-352bits用于设置账户密钥盐值,高位起81-176bits和353-512bits用于设置密钥哈希值;相应地,在进行字符提取时,提取高位起81-176bits和353-512bits的字符,合并后形成密钥哈希值,将高位起1-80bits和177-352bits的字符合并后形成账户密钥盐值。再比如假设账户密钥内容的长度为512bits,且约定从高位起的33-288bits用于设置账户密钥盐值,高位起的1-32bits和289-512bits用于设置密钥哈希值;相应地,在进行字符提取时,提取高位起的1-32bits和289-512bits的字符合并后形成密钥哈希值,将高位起的33-288段bits的字符形成账户密钥盐值;再比如假设账户密钥内容的长度为560bits,约定高位起的33-288bits用于设置密钥哈希值,高位起的313-360bits用于设置干扰字符,高位起的1-32bits和361-560bits用于设置账户密钥盐值;相应地,在进行字符提取时,先提取高位起的33-288bits的字符形成密钥哈希值,再将高位起1-32bits和361-560bits合并后作为账户密钥盐值。
在一实施例中,所述基于存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,确定共享盐值,包括:
获取存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息;
在映射表中查询与所述属性信息对应的共享盐值;所述映射表包含账户存储文件的属性信息与共享盐值的映射关系。
其中,实际应用时,所述属性信息是指用于区别不同用户账户存储文件的标识信息,也就是说,属性信息能够标识一个账户存储文件,如用户账户存储文件的版本(version)信息,用户账户存储文件的存储设备编号,用户账户存储文件的文件类型等。
在实际应用时,共享盐值的字符长度可以根据需要来设置,比如可以设置共享盐值的长度与密钥哈希值的长度相同;示例性地,当密钥哈希值的长度为256bits时,设置共享盐值的长度为256bits。映射表中,可以存储有多个属性信息与多个共享盐值一一对应的对应关系,每个属性信息在映射表中可以对应查找获得一个256bits长度的共享盐值。示例性地,如属性信息为1,对应获得一个256bits长度的共享盐值字符串,属性信息为2,对应获取另一个256bits长度的共享盐值字符串。
通过账户存储文件的属性信息查询共享盐值,可以使得一个账户存储文件对应一个共享盐值,不同的账户存储文件对应不同的共享盐值,便于账户管理。
需要说明的是,在实际应用时,账户密钥盐值可以为随机数,与密钥哈希值一起存储在本地的账户存储文件中。共享盐值也可以为随机数,可以存储在本地中除用户账户存储文件位置外的其他位置,也就是说,共享盐值与账户密钥盐值和密钥哈希值的存储位置不同;另外,在密钥验证过程中,多个用户账户可以使用一个共享盐值。
这里,存储共享盐值实际上是指:存储所述映射表。
本发明实施例的方案中,需要基于存储用户密钥盐值和密钥哈希值的账户存储文件的属性信息在映射表中查询与所述属性信息对应的共享盐值,确定的共享盐值的方式是不容易获知的,如此,增强了用户账户被破解的破解难度,提高了账户的安全性。
在步骤103中,在一实施例中,所述根据获取的账户密钥、所述对应的账户密钥盐值和共享盐值进行哈希计算,获得密钥哈希计算值,可以包括:
利用所述获取的账户密钥、所述对应的账户密钥盐值和共享盐值,构建字符串;
对所述字符串进行哈希计算,获得密钥哈希计算值。
在实际应用时,可以先获取账户密钥、账户密钥盐值和共享盐值分别对应的字符,再将这些字符按照约定的第一顺序进行排列后,获得字符串。
所述第一顺序为预先约定的对于字符进行排列的顺序,如按照先排列账户密钥的字符、再排列账户密钥盐值的字符,最后排列共享盐值的字符的顺序。
这里,实际应用时,进行哈希计算所采用的哈希算法也可以为预先约定的一种哈希算法。具体地,可以采用一种安全哈希算法,对所述字符串进行哈希计算,比如SHA-224、SHA-256、SHA-384、SHA-512等,安全哈希算法本身具有单向不可逆性,可以抵御逆向分析账户密钥的攻击风险,因此,采用安全哈希算法,相比于加密算法,可以提高账户的安全性;同时安全哈希算法在计算上具有简单高效的特点,相比于加密算法,所需要的计算资源较少,可以降低验证计算的资源需求。将账户密钥、账户密钥盐值和共享盐值按照顺序进行排列,构建字符串的方式进行安全哈希计算,需要准确知道账户密钥、账户密钥盐值和共享盐值的排列顺序,比将账户密钥、账户密钥盐值和共享盐值分别进行哈希计算,提高了用户账户的破解难度,增强了账户安全性。
在步骤104中,所述将密钥哈希计算值与获取的密钥哈希值进行比较,具体可以是比较密钥哈希计算值与密钥哈希值是否一致,如密钥哈希计算值的字符数和字符顺序,与密钥哈希值的字符数和字符顺序是否一致;相应地,比较结果可以是密钥哈希计算值与密钥哈希值一致或不一致。
相应地,在步骤105中,当比较结果是密钥哈希计算值与密钥哈希值一致,则用户账户通过验证;当比较结果是密钥哈希计算值与密钥哈希值不一致,则用户账户没有通过验证。
本发明实施例中,通过验证密钥哈希值的方式进行密钥验证,避免了直接将用户输入的密钥进行密钥验证,提高了账户验证的安全性。
本发明实施例提供的账户密钥验证方法,获取用户账户的账户名称和账户密钥;在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,并基于存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,确定共享盐值;所述对应的账户密钥盐值和密钥哈希值以明文形式记录在账户存储文件中;根据获取的账户密钥、所述对应的账户密钥盐值和共享盐值进行哈希计算,获得密钥哈希计算值;将所述密钥哈希计算值与获取的密钥哈希值进行比较,得到比较结果;根据所述比较结果确定所述用户账户是否通过验证,本发明实施例中,采用了账户密钥盐值和共享盐值,并结合哈希算法来对用户账户进行验证,且需要基于存储用户密钥盐值和密钥哈希值的账户存储文件的属性信息去确定共享盐值,而确定共享盐值的方式是不容易获知的,本发明实施例对用户账户进行验证的方式与只采用哈希算法对用户账户进行验证相比,即与直接将账户密钥通过哈希算法进行验证的方式相比,采用哈希算法对用户账户进行验证的方式中在获取哈希计算公式的前提下,通过一个彩虹表就可以破解账户存储文件中的多个账户密钥,即用户存储文件抵御针对账户密钥的字典撞库攻击的能力较差;而采用本发明实施例的方式,在获取哈希计算公式的前提下,通过一个彩虹表只能破解本地账户存储文件中的一个账户,由于破解账户信息还需要获知共享盐值的确定方式,而确定共享盐值的方式是不容易获知的,因此如果要破解本地存储文件中的多个账户信息,则需要多个彩虹表,即本发明实施例的方案,能够提升应对以数学方式对账户密钥进行字典撞库攻击的难度。也就是说,本发明实施例的方案,由于在采用账户密钥盐值加哈希算法的基础上,采用账户密钥盐值和共享盐值加哈希算法对用户账户进行验证,且需要基于存储用户密钥盐值和密钥哈希值的账户存储文件的属性信息去确定共享盐值,而确定共享盐值的方式是不容易获知的,如此,大大增强了账户信息被破解的难度,提高了账户信息的安全性。同时,本地存储的账户信息并不包含账户密钥,这样,与将账户密钥进行解密验证,需要将解密后的账户密钥存储在本地文档中的方式相比,能够降低文件攻击与内存攻击,以及账户密钥泄漏的风险。
另外,本发明实施例中,基于提取策略对账户密钥内容进行字符提取,获得账户密钥盐值;同时,将获取的账户秘钥、账户密钥盐值和共享盐值按照第一顺序排列,构建字符串,由于提取账户密钥盐值的策略与构建字符串的排列规则并不对外公开,因此也是不容易获知的;此外,即使获取了用户密钥盐值的提取方式以及共享盐值,并获取构建字符串的规则,也需要多个彩虹表,才能破解本地存储文件中的多个账户信息,因此,本发明实施例进一步提升了应对以数学方式对账户密钥进行字典撞库攻击的难度,极大地增强了账户信息被破解的难度,进一步提高了账户信息的安全性。
下面结合应用实施例对本发明再作进一步详细的描述。
在本应用实施例中,账户密钥验证方法应用于电力系统的访问控制账户的控制设备上;增强电力系统的访问控制账户密钥的安全存储与验证的流程包括账户存储文件的账户信息的存储与账户信息验证流程两部分。其中,账户存储文件中以明文记录信息,包括账户名称、账户密钥哈希值等信息,并且包含一个该账户存储文件的标识比如version字段;账户身份验证程序执行对登入账户的合法性验证。
首先,描述账户存储文件的账户信息的存储流程。
控制设备上设置有账户存储文件,账户存储文件以明文记录每个账户Accountn的账户密钥盐值Saltn和密钥哈希值HashKeyn,(其中,Accountn表示账户存储文件中的第n个账户,n的取值为大于或等于1的整数);其中,通过存储每个账户Accountn的账户密钥盐值Saltn和密钥哈希值HashKeyn,且这两个信息用于进行用户账户进行验证,不是直接记录账户密钥,所以可以理解为实现了账户密钥的间接存储,即可以将密钥盐值和密钥哈希值可以称为账户密钥内容,由于不涉及账户密钥明文,所以提高了用户账户信息的安全性。
这里,将账户密钥PlainKeyn、账户密钥盐值Saltn和共享盐值SaltShare共同组成密钥加盐哈希字符串StrKeyn,用公式表示为StrKeyn=SaltShare|PlainKeyn|Saltn;对密钥加盐哈希字符串StrKeyn进行哈希计算得到密钥哈希值HashKeyn,用公式表示为HashKeyn=Hash(StrKeyn)。
具体地,参见图2,账户存储文件以明文记录了账户名称、账户密钥内容和一个标识账户存储文件的一个属性信息比如version字段等账户信息。其中,账户密钥内容包括两部分:账户密钥盐值与密钥哈希值,其中,账户密钥盐值为一个随机数。假设采用的哈希算法得到的密钥哈希值的长度为256bits,并设置账户密钥盐值的长度也为256bits,则账户密钥内容的字段内容长度可以固定为512bit,其中,账户密钥盐值可以在账户密钥内容的字段的高位起第33~288bits固定顺序存储,密钥哈希值可以在账户密钥内容的字段的高位起第1~32和289~256bit固定顺序存储。即以Accountn、AccoutKeyn[512]分别标识账户存储文件中的第n个账户的账户名称、账户密钥内容,则其密钥盐值可标记为Saltn=AcountKeyn[33-288],密钥哈希值标可记为HashKeyn=AccoutKeyn[1-32]|AccountKeyn[289-512]
在账户存储文件中,version字段内容唯一映射一个不同的256bits随机数,即共享盐值Saltshare,共享盐值Saltshare也可以不被记录在账户存储文件中,不同账户存储文件的version字段内容不相同;不同的version字段内容对应不同的共享盐值Saltshare
这里,共享盐值Saltshare可以根据version字段通过查询映射表获得。映射表中记录了version字段与共享盐值的映射关系,映射表可以标识为SaltShare=[FileVeri,SaltSharei],其中,FileVeri为映射表中第i个version内容元素,其唯一对应随机数共享盐值为SaltSharei
一个账户存储文件包含有多个账户,可以以Accountn标识账户存储文件中的第n个账户,第n个账户的账户密钥盐值标记为Saltn,密钥哈希值标记为HashKeyn,账户密钥明文标记为PlainKeyn
账户存储文件中只存储账户密钥盐值与账户密钥哈希值,而不直接存储账户密钥明文,实现了账户密钥的间接存储,提高了账户安全性。
在账户存储文件创建之前,系统还需要约定以共享盐值、账户密钥明文与账户密钥盐值的所有字符构建密钥加盐哈希字符串的组合排列方法,即按照共享盐值、账户密钥明文、账户密钥盐值的所有字符顺序排列,构建账户Accountn的密钥加盐哈希字符串,标识为StrKeyn=SaltShare|PlainKeyn|Saltn;约定计算账户密钥哈希值的安全哈希算法Hash(x),安全哈希算法Hash(x)为SHA256。接着,详细描述账户信息验证流程。
参见图3,账户信息验证的流程包括以下步骤:
步骤301:启动控制设备,之后执行步骤302;
这里,账户密钥验证设备中存储有账户密钥验证程序,账户密钥验证程序采用本发明实施例的方案对账户密钥进行合法性验证。
步骤302:加载账户存储文件内容,之后执行步骤303;
步骤303:控制设备等待账户登入,之后执行步骤304;
步骤304:控制设备检测是否有账户登入,如果有账户登入,则执行步骤305;若账户没有登入,继续执行步骤303;
步骤305:控制设备记录登入的账户名称Account以及登入的账户密钥PlainKey,之后执行步骤306;
步骤306:控制设备遍历账户存储文件;查询账户存储文件中是否包含账户名称为当前登入的账户名称Account的账户;
这里,遍历账户存储文件,查询账户存储文件中是否包含账户名称为Account的账户;即判断账户存储文件中是否查询到账户名称为Account的账户,如果是,即Account==Accountn,则执行步骤307;否则,执行步骤308;
步骤307:控制设备获取账户Accountn的账户密钥盐值Saltn与密钥哈希值HashKeyn,之后执行步骤309;
这里,控制设备根据账户存储文件账户Accountn的账户名称,对应获取账户密钥盐值Saltn、密钥哈希值HashKeyn
步骤308:确定账户信息验证失败,之后执行步骤314;
步骤309:控制设备加载共享盐值Saltshare,之后执行步骤310;
这里,控制设备先获取账户Accountn的version字段,再利用version字段查询映射表获得共享盐值Saltshare,并加载共享盐值Saltshare
步骤310:控制设备构建密钥加盐哈希字符串StrKey=SaltShare|PlainKey|Saltn,之后执行步骤311;
依据账户存储文件创建之前约定的建账户密钥加盐哈希字符串的方式,以共享盐值SaltShare、登入账户密钥明文PlainKey和账户密钥盐值Saltn的所有字符,构建登入账户Account的密钥加盐哈希字符串,可以标识为StrKey=SaltShare|PlainKey|Saltn,或标识为StrKey=SaltShare|PlainKey|AccountKeyn[33-288]
步骤311:控制设备计算登入账户的密钥哈希计算值HashKey=Hash(StrKey),之后执行步骤312;
依据账户存储文件创建之前约定的安全哈希算法Hash(x),以账户Accountn的密钥加盐哈希字符串StrKeyn为输入,采用SHA256,计算得到该账户的密钥哈希计算值,标记为HashKey=HashSHA256(StrKey)。
步骤312:控制设备检测计算得到的密钥哈希计算值是否与账户存储文件中的密钥哈希值一致;若一致,即HashKey==HashKeyn,则执行步骤313;若不一致,则执行步骤308;
步骤313:确定账户信息验证成功,之后执行步骤314;
步骤314:结束当前处理流程。
在结束当前处理流程之后,可以继续执行步骤303,或者关闭当前流程。
从上面的描述可以看出,本发明实施例提供的验证方法,将账户密钥盐值和密钥哈希值记录在账户存储文件中,所以在账户存储过程不涉及账户密钥的存储;通过校验哈希值的方式对用户账户进行验证,在账户密钥验证过程中,也不直接使用账户密钥进行验证,所以与将账户密钥进行解密验证,需要将解密后的账户密钥存储在本地账户存储文件中的方式相比,能够降低对本地账户存储文件与内存的攻击,以及降低了账户密钥泄漏的风险。同时,安全哈希算法具有单向不可逆性,即哈希算法具有安全性,可以抵御逆向分析账户密钥的攻击风险。同时,通过引入账户密钥盐值和密钥哈希值,采用账户密钥盐值和共享盐值加哈希算法对用户账户进行验证,且需要基于存储用户密钥盐值和密钥哈希值的账户存储文件的属性信息去确定共享盐值,而确定共享盐值的方式是不容易获知的,在获取哈希计算公式的前提下,通过一个彩虹表只能破解本地账户存储文件中的一个账户,由于破解账户信息还需要获知共享盐值的确定方式,而确定共享盐值的方式是不容易获知的,并且由于提取用户私盐与构建字符串规则并不对外公开,这些信息也是不容易获知的,因此如果要破解本地存储文件中的多个账户信息;此外,即使获取了用户私盐提取方式以及共享盐值,并获取构建字符串规则,也需要多个彩虹表,因此本发明实施例的方案,能够提升账户存储文件抵御针对账户密钥的字典撞库攻击风险的能力(如彩虹表攻击),提升账户存储文件抵御针对账户密钥进行字典撞库攻击的难度。也就是说,采用本发明实施例的方案后,账户存储文件中任一个用户账户的账户密钥破解,都不影响其他用户账户的账户密钥;并且所有账户密钥均可明文存储,提升了账户密钥存储的便利性。也就是说,采用本发明实施例的方案后,不仅提高了账户信息的安全性,还提升了账户密钥存储的便利性。
另外,本发明实施例采用的安全哈希算法,在计算上具有简单高效的特点,能在资源受限领域广泛应用。
为了实现本发明实施例的方法,本发明实施例还提供了一种账户密钥验证装置。如图4所示,账户密钥验证装置400包括:第一获取单元411、第二获取单元412、计算单元413、比较单元414和验证单元415,其中,
所述第一获取单元411,用于获取用户账户的账户名称和账户密钥;
所述第二获取单元412,用于在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,并基于存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,确定共享盐值;所述对应的账户密钥盐值和密钥哈希值以明文形式记录在账户存储文件中;
所述计算单元413,用于根据获取的账户密钥、所述对应的账户密钥盐值和共享盐值进行哈希计算,获得密钥哈希计算值;
所述比较单元414,用于将所述密钥哈希计算值与获取的密钥哈希值进行比较,得到比较结果;
所述验证单元415,用于根据所述比较结果确定所述用户账户是否通过验证。
在一实施例中,所述计算单元413,具体用于:
利用所述获取的账户密钥、所述对应的账户密钥盐值和共享盐值,构建字符串;
对所述字符串进行哈希计算,获得密钥哈希计算值。
在一实施例中,所述计算单元413,具体用于:
将所述获取的账户密钥、所述对应的账户密钥盐值和共享盐值按照第一顺序进行排列,得到所述字符串。
在一实施例中,所述第二获取单元412,具体用于:
获取存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息;
在映射表中查询与所述属性信息对应的共享盐值;所述映射表包含账户存储文件的属性信息与共享盐值的映射关系。
在一实施例中,所述第二获取单元412,具体用于:
从账户存储文件中获取与所述获取的账户名称对应的账户密钥内容;
利用获取的账户密钥内容,获得所述对应的账户密钥盐值和密钥哈希值。
在一实施例中,所述第二获取单元412,还用于:
基于第一提取策略,对所述内容进行字符提取,将提取的字符作为所述对应的账户密钥盐值;将所述内容中除所述提取的字符外的其他字符中的全部或部分作为所述对应的密钥哈希值;
或者,
基于第二提取策略,对所述内容进行字符提取,将提取的字符作为所述对应的密钥哈希值;将所述内容中除所述提取的字符外的其他字符中的全部或部分作为所述对应的账户密钥盐值。
在一实施例中,所述第二获取单元412,还用于:
根据所述获取的账户名称遍历本地的账户存储文件;
在所述账户存储文件中存在获取的账户名称的情况下,根据获取的账户名称从账户存储文件中获取对应的账户密钥盐值和密钥哈希值。
实际应用时,所述第一获取单元411可由账户密钥验证装置中的处理器结合通信接口实现;所述第二获取单元412、计算单元413、比较单元414和验证单元415可由账户密钥验证装置中的处理器实现。
需要说明的是:上述实施例提供的账户密钥验证装置在账户密钥验证时,仅以上述各程序模块的划分进行举例说明,实际应用时,可以根据需要而将上述处理分配由不同的程序模块完成,即将终端的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的账户密钥验证装置与账户密钥验证方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本发明实施例的方法,本发明实施例还提供了一种账户密钥验证装置,如图5所示,所述账户密钥验证装置50包括:
通信接口51,能够与其他设备(比如网络设备、终端等)进行信息交互;
处理器52,与所述通信接口51连接,以实现与其他设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的方法;
存储器53,用于存储能够在所述处理器52上运行的计算机程序。
具体地,所述处理器52用于执行以下操作:
通过所述通信接口51获取用户账户的账户名称和账户密钥;
在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,并基于存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,确定共享盐值;所述对应的账户密钥盐值和密钥哈希值以明文形式记录在账户存储文件中;
根据获取的账户密钥、所述对应的账户密钥盐值和共享盐值进行哈希计算,获得密钥哈希计算值;
将所述密钥哈希计算值与获取的密钥哈希值进行比较,得到比较结果;
根据所述比较结果确定所述用户账户是否通过验证。
在一实施例中,所述处理器52,还用于执行以下操作:
利用所述获取的账户密钥、所述对应的账户密钥盐值和共享盐值,构建字符串;
对所述字符串进行哈希计算,获得密钥哈希计算值。
在一实施例中,所述处理器52,还用于将所述获取的账户密钥、所述对应的账户密钥盐值和共享盐值按照第一顺序进行排列,得到所述字符串。
在一实施例中,所述处理器52,还用于执行以下操作:
获取存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息;
在映射表中查询与所述属性信息对应的共享盐值;所述映射表包含账户存储文件的属性信息与共享盐值的映射关系。
在一实施例中,所述处理器52,还用于执行以下操作:
从账户存储文件中获取与所述获取的账户名称对应的账户密钥内容;
利用获取的账户密钥内容,获得所述对应的账户密钥盐值和密钥哈希值。
在一实施例中,所述处理器52,还用于执行以下操作:
基于第一提取策略,对所述内容进行字符提取,将提取的字符作为所述对应的账户密钥盐值;将所述内容中除所述提取的字符外的其他字符中的全部或部分作为所述对应的密钥哈希值;
或者,
基于第二提取策略,对所述内容进行字符提取,将提取的字符作为所述对应的密钥哈希值;将所述内容中除所述提取的字符外的其他字符中的全部或部分作为所述对应的账户密钥盐值。
在一实施例中,所述处理器52,还用于执行以下操作:
根据所述获取的账户名称遍历本地的账户存储文件;
在所述账户存储文件中存在获取的账户名称的情况下,根据获取的账户名称从账户存储文件中获取对应的账户密钥盐值和密钥哈希值。
需要说明的是:所述处理器52具体执行上述操作的过程详见方法实施例,这里不再赘述。
当然,实际应用时,账户密钥验证装置50中的各个组件通过总线系统54耦合在一起。可理解,总线系统54用于实现这些组件之间的连接通信。总线系统54除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统54。
本发明实施例中的存储器53用于存储各种类型的数据以支持账户密钥验证装置50的操作。这些数据的示例包括:用于在账户密钥验证装置50上操作的任何计算机程序。
上述本发明实施例揭示的方法可以应用于处理器52中,或者由处理器52实现。处理器52可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器52中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器52可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器52可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器53,处理器52读取存储器53中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,账户密钥验证装置50可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或者其他电子元件实现,用于执行前述方法。
可以理解,本发明实施例的存储器(存储器53)可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(FlashMemory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random AccessMemory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random AccessMemory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在示例性实施例中,本发明实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器53,上述计算机程序可由账户密钥验证装置50的处理器52执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (7)

1.一种账户密钥验证方法,其特征在于,包括:
获取用户账户的账户名称和账户密钥;
在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,并获取存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,在映射表中查询与所述属性信息对应的共享盐值;所述映射表包含账户存储文件的属性信息与共享盐值的映射关系;所述共享盐值为针对多个用户账户设定的,进行验证所使用的账户公钥;所述多个用户账户使用一个共享盐值;所述对应的账户密钥盐值和密钥哈希值以明文形式记录在账户存储文件中;
将获取的所述账户密钥、所述对应的账户密钥盐值和共享盐值按照预先约定的第一顺序进行排列,得到字符串,对所述字符串进行哈希计算,获得密钥哈希计算值;
将所述密钥哈希计算值与获取的密钥哈希值进行比较,得到比较结果;
根据所述比较结果确定所述用户账户是否通过验证。
2.如权利要求1所述的账户密钥验证方法,其特征在于,所述在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,包括:
从账户存储文件中获取与所述获取的账户名称对应的账户密钥内容;
利用获取的账户密钥内容,获得所述对应的账户密钥盐值和密钥哈希值。
3.根据权利要求2所述的方法,其特征在于,所述利用获取的账户密钥内容,获得所述对应的账户密钥盐值和密钥哈希值,包括:
基于第一提取策略,对所述内容进行字符提取,将提取的字符作为所述对应的账户密钥盐值;将所述内容中除所述提取的字符外的其他字符中的全部或部分作为对应的密钥哈希值;
或者,
基于第二提取策略,对所述内容进行字符提取,将提取的字符作为所述对应的密钥哈希值;将所述内容中除所述提取的字符外的其他字符中的全部或部分作为所述对应的账户密钥盐值。
4.如权利要求1所述的账户密钥验证方法,其特征在于,所述在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,包括:
根据所述获取的账户名称遍历本地的账户存储文件;
在所述账户存储文件中存在获取的账户名称的情况下,根据获取的账户名称从账户存储文件中获取对应的账户密钥盐值和密钥哈希值。
5.一种账户密钥验证装置,其特征在于,包括:
第一获取单元,用于获取用户账户的账户名称和账户密钥;
第二获取单元,用于在账户存储文件中获取与获取的账户名称对应的账户密钥盐值和密钥哈希值,并获取存储所述对应的账户密钥盐值和密钥哈希值的账户存储文件的属性信息,在映射表中查询与所述属性信息对应的共享盐值;所述映射表包含账户存储文件的属性信息与共享盐值的映射关系;所述共享盐值为针对多个用户账户设定的,进行验证所使用的账户公钥;所述多个用户账户使用一个共享盐值;所述对应的账户密钥盐值和密钥哈希值以明文形式记录在账户存储文件中;
计算单元,用于将获取的所述账户密钥、所述对应的账户密钥盐值和共享盐值按照预先约定的第一顺序进行排列,得到字符串,对所述字符串进行哈希计算,获得密钥哈希计算值;
比较单元,用于将所述密钥哈希计算值与获取的密钥哈希值进行比较,得到比较结果;
验证单元,用于根据所述比较结果确定所述用户账户是否通过验证。
6.一种账户密钥验证装置,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行如权利要求1至4任一项所述账户密钥验证方法的步骤。
7.一种计算机存储介质,所述计算机存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,执行如权利要求1至4任一项所述账户密钥验证方法的步骤。
CN202010361856.7A 2020-04-30 2020-04-30 账户密钥验证方法、装置及计算机存储介质 Active CN111611576B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010361856.7A CN111611576B (zh) 2020-04-30 2020-04-30 账户密钥验证方法、装置及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010361856.7A CN111611576B (zh) 2020-04-30 2020-04-30 账户密钥验证方法、装置及计算机存储介质

Publications (2)

Publication Number Publication Date
CN111611576A CN111611576A (zh) 2020-09-01
CN111611576B true CN111611576B (zh) 2022-09-23

Family

ID=72199519

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010361856.7A Active CN111611576B (zh) 2020-04-30 2020-04-30 账户密钥验证方法、装置及计算机存储介质

Country Status (1)

Country Link
CN (1) CN111611576B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626802B (zh) * 2021-08-23 2023-05-12 重庆第二师范学院 一种设备密码的登录验证系统及方法
CN114584291B (zh) * 2022-02-18 2023-12-29 杭州代码狗科技有限公司 基于hmac算法的密钥保护方法、装置、设备和存储介质
CN115086008B (zh) * 2022-06-13 2024-02-09 北京信长城科技发展有限公司 密码安全保护的实现方法、装置、存储介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656476A (zh) * 2017-01-18 2017-05-10 腾讯科技(深圳)有限公司 一种密码保护方法及装置
CN107733656A (zh) * 2017-10-23 2018-02-23 北京深思数盾科技股份有限公司 一种密码认证方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656476A (zh) * 2017-01-18 2017-05-10 腾讯科技(深圳)有限公司 一种密码保护方法及装置
CN107733656A (zh) * 2017-10-23 2018-02-23 北京深思数盾科技股份有限公司 一种密码认证方法及装置

Also Published As

Publication number Publication date
CN111611576A (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
CN111611576B (zh) 账户密钥验证方法、装置及计算机存储介质
US9811547B2 (en) Client computer for updating a database stored on a server via a network
CN111783075B (zh) 基于密钥的权限管理方法、装置、介质及电子设备
KR102493744B1 (ko) 생체 특징에 기초한 보안 검증 방법, 클라이언트 단말, 및 서버
CN107209787B (zh) 提高专用加密数据的搜索能力
US10911538B2 (en) Management of and persistent storage for nodes in a secure cluster
TW201635186A (zh) 使用憑證導出之加密密鑰改良韌體服務安全性的計算裝置之系統及方法
WO2020181809A1 (zh) 基于接口校验的数据处理的方法、系统和计算机设备
EP2803011B1 (en) Detection of invalid escrow keys
CN110661779B (zh) 基于区块链网络的电子证件管理方法、系统、设备及介质
US20200004695A1 (en) Locally-stored remote block data integrity
CN112860778B (zh) 桌面应用程序的数据库管理方法、装置、设备和介质
CN116980230A (zh) 一种信息安全保护方法及装置
US20190354697A1 (en) System and method for securing data in a storage medium
CN111090616B (zh) 一种文件管理方法、对应装置、设备及存储介质
US11954234B2 (en) System and method for protecting browser data
CN114553557B (zh) 密钥调用方法、装置、计算机设备和存储介质
Ferdous et al. Portable personal identity provider in mobile phones
US20230123691A1 (en) Secure digital record with improved data update and sharing
CN112865981B (zh) 一种令牌获取、验证方法及装置
WO2018034192A1 (ja) 情報処理装置、情報処理方法、及び、記録媒体
Chahal et al. Challenges and security issues of NoSQL databases
Choi et al. Hardware-assisted credential management scheme for preventing private data analysis from cloning attacks
CN115659394A (zh) 数据库访问系统、方法以及装置
Bangma et al. ECDSA Based 2FA in the Browser

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