CN103780379B - 密码加密方法和系统以及密码校验方法和系统 - Google Patents

密码加密方法和系统以及密码校验方法和系统 Download PDF

Info

Publication number
CN103780379B
CN103780379B CN201210401262.XA CN201210401262A CN103780379B CN 103780379 B CN103780379 B CN 103780379B CN 201210401262 A CN201210401262 A CN 201210401262A CN 103780379 B CN103780379 B CN 103780379B
Authority
CN
China
Prior art keywords
user
character string
password
hmac
cipher
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
CN201210401262.XA
Other languages
English (en)
Other versions
CN103780379A (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.)
Advanced New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201210401262.XA priority Critical patent/CN103780379B/zh
Publication of CN103780379A publication Critical patent/CN103780379A/zh
Application granted granted Critical
Publication of CN103780379B publication Critical patent/CN103780379B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种密码加密方法,用于对用户的密码进行加密,其中每个用户具有唯一识别码,该方法包括步骤:获取固定字符串;将唯一识别码、固定字符串、密码串接成串接字符串;通过散列算法对串接字符串执行摘要运算,获得用户的密码摘要值。通过应用根据本发明的密码加密方法和系统以及密码校验方法和系统,本发明能够应用于卡密数据保护、用户的安保问题答案保护等等。由于本发明在用户密码摘要值运算过程中,增加了用户唯一因子——用户唯一识别码,确保了用户密码摘要值的唯一性,从而赋予了密码数据库文件抵抗选择明文攻击和事先选择明文攻击的能力。

Description

密码加密方法和系统以及密码校验方法和系统
技术领域
本发明涉及数据通信领域,更具体地,涉及密码加密方法和系统以及密码校验方法和系统。
背景技术
密码(password),或称为口令,是指认证用途的字词,可用来验证身份或检查一项操作的许可,达到保护隐私以及防止未经授权的操作的目的。常见于网站登录、对网络资料库存取、自动取款机的验证等等。
密码学(cryptography)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。
现代密码学技术主要涉及散列函数。散列函数又被称为Hash函数(也叫杂凑函数),就是把任意长的输入消息串转化成固定长度的输出串的一种函数,这个输出串被称为该消息的散列值(或杂凑值)。散列函数一般用于产生消息摘要、密钥加密等。
“消息摘要”(Message Digest)是一种能产生特殊输出格式的算法,这种加密算法的特点是:无论用户输入什么长度的原始数据,经过计算后输出的密文都是固定长度的,这种算法的原理是根据一定的运算规则对原数据进行某种形式的提取,这种提取就是“摘要”,被“摘要”的数据内容与原数据有密切联系,只要原数据稍有改变,输出的“摘要”便完全不同。但是,由于输出的密文是提取原数据经过处理的定长值,所以它已经不能还原为原数据,即消息摘要算法是“不可逆”的,理论上无法通过反向运算取得原数据内容,因此它通常只能被用来做数据完整性验证,而不能作为原数据内容的加密方案使用,否则谁也无法还原。消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。一般地,只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出。
一个安全的散列函数应该至少满足以下几个条件:①输入长度是任意的;②输出长度是固定的,根据目前的计算技术应至少取128bit;③对每一个给定的输入,计算其散列值是很容易的;④构造两个独立的有相同散列值的输入在计算上是不可行的。
散列函数主要用于完整性校验和提高数字签名的有效性,目前已有很多方案。这些算法是伪随机函数,输出域内任何散列值都是可能的;散列值以不可辨别的方式依赖于输入;在任何输入串中单个比特的变化,将会导致输出比特串中大约一半的比特发生变化。
常见散列函数主要有以下几类:①MD5(Message Digest Algorithm 5)是RSA数据安全公司开发的一种单向散列算法,可以用来把不同长度的数据块进行暗码运算成一个128位的数值,应用广泛;②SHA(Secure Hash Algorithm)是一种较新的散列算法,可以对任意长度的数据运算生成一个160位的数值;③MAC(Message Authentication Code)是消息认证代码,一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息;④CRC(Cyclic Redundancy Check)是循环冗余校验码,CRC校验由于实现简单,检错能力强,被广泛应用在各种数据校验应用中,由于其占用系统资源少,用软硬件均能实现,是进行数据传输差错检测的一种很好的手段(CRC并不是严格意义上的散列算法,但它的作用与散列算法大致相同,所以归于此类)。目前常见的散列算法包括HAVAL、MD2、MD4、MD5、PANAMA、RadioGatún、RIPEMD、RIPEMD-128/256、RIPEMD-160/320、SHA-0、SHA-1、SHA-256/224、SHA-512/384、Tiger(2)-192/160/128、WHIRLPOOL等等。
2011年底和2012年初,许多网站的用户密码被泄露,其根本原因是用户密码明文存放和密码文件访问控制措施不够严密。防止密码文件被拖库涉及到信息安全的很多方面,要彻底防住很难。
用户密码文件被攻击者窃取后,攻击者可以对用户密码文件尝试以下几种攻击:密码是否加密;密码密文统计特征分析;选择密码明文攻击;事前选择密码明文攻击。
目前国际国内网站对用户密码的存储保护办法有以下三种:
(1)直接将密码以明文字符串的形式存放到数据库;
(2)先用哈希算法MD5对用户密码做摘要,然后将摘要值或其Base64编码运算结果存入数据库;
(3)先设定一个固定的字符串(称为Salt),然后将Salt和用户密码串接起来,再用哈希算法MD5对串接的结果字符串做摘要,最终将摘要值或其Base64编码运算结果存入数据库。其中Salt值需要采取严格措施确保其机密性,可以采用的办法包括但不限于:将Salt与用户密码分开存放,严格限制只有授权的用户/程序才能读取Salt。
在办法(2)和(3)中,还可以采用SHA1、SHA192、SHA256、SHA384、SHA512等哈希算法取代MD5。
上述3种用户密码存储办法中:
(1)第一种办法最不安全,一旦用户密码数据库被窃取,用户密码将全部暴露;
(2)第二种办法不会直接泄露密码明文,但攻击者拿到密码数据库后,可以通过选择明文攻击(通过密码字典选择密码明文,对其做MD5摘要,然后将摘要值与数据库密码摘要字段进行比较,如果2个摘要相等,则该用户密码即为该密码明文)破解出用户密码;
(3)第三种办法不会泄露密码明文,并且可以防止攻击者拿到密码数据库后的选择明文攻击(假设攻击拿不到Salt,且Salt足够长)。但攻击者可以进行事先选择明文攻击,在窃取密码数据库之前,攻击者在目标网站注册许多账户,将这些账户的密码设置为互联网用户比较常用的那些密码(这个密码列表是公开的,可以直接从互联网上获取到),并记录下来;然后攻击者窃取网站的密码数据库,并根据他注册的账户名,查找到该账户对应的密码的密文值,然后在密码数据库中查找密码密文值相同的字段,如有,则该字段对应的用户的密码与攻击者注册账户的密码一致,攻击者通过查询预先记录的账户注册信息就获得了该用户的密码明文。
MD5算法产生的摘要长度为128bit(16byte),其安全性较低,在当前的计算能力下,很容易被穷举攻击所破解。
另外,在当前的互联网环境中,一个用户会在很多网站上注册账户。为了便于记忆,许多用户会将不同网站上的账户的账户名和密码设置成一样,或只做少量变化。这些网站对用户密码的安全保护程度是不一样的,攻击者可以先攻击安全保护程度差的网站,窃取到该网站的用户密码文件后,破解出用户名和密码,然后再到其要攻击的网站上去,根据已破解的用户名/密码表进行穷举登录尝试,可以批量获取特定的账户名和密码。上述三种办法都不能很好地对付这种攻击方式。究其原因,在于部分用户在不同网站上设置了相同的用户名/密码,其中一个网站上的用户信息泄露,导致其他网站上的相同用户信息全部泄露。
总而言之,现有技术中,并不存在一种保证即使存放用户密码的数据库文件被窃也不会泄露任何用户密码信息的技术方案。
发明内容
本发明的目的在于,提供能够将密码文件拖库后的信息泄露风险控制到最低的技术方案。
根据本发明的一方面,提供了一种密码加密方法,用于对用户的密码进行加密,其中每个用户具有唯一识别码,该方法包括步骤:获取固定字符串;将唯一识别码、固定字符串、密码串接成串接字符串;通过散列算法对串接字符串执行摘要运算,获得用户的密码摘要值。
根据本发明的实施方式,固定字符串的存放位置可以不同于密码摘要值的存放位置。
根据本发明的实施方式,该方法可以进一步包括对密码摘要值进行编码,获得用户的密码编码值。编码可以是Base64编码等。固定字符串的存放位置可以不同于密码编码值的存放位置。
根据本发明的实施方式,散列算法可以是SHA1、SHA192、SHA256、SHA384、SHA512、HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512等。
根据本发明的实施方式,唯一识别码、固定字符串、密码的串接顺序可以是可调的。
根据本发明的另一方面,提供了一种密码校验方法,用于对用户的密码进行校验,其中每个用户具有唯一识别码以及密码数据,该方法包括步骤:根据用户输入获取唯一标识码和用户输入密码;获取与密码数据相关的固定字符串;将唯一识别码、固定字符串、用户输入密码串接成串接字符串;通过散列算法对串接字符串执行摘要运算,获得摘要运算结果作为用户的待验密码数据;将待验密码数据与用户的密码数据进行比较,获得校验结果。
根据本发明的实施方式,固定字符串的存放位置可以不同于密码数据的存放位置。
根据本发明的实施方式,通过散列算法对串接字符串执行摘要运算后可以对所述摘要运算结果进行编码,获得经编码的摘要运算结果作为用户的待验密码数据。编码可以是Base64编码等。
根据本发明的实施方式,散列算法可以是SHA1、SHA192、SHA256、SHA384、SHA512、HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512等。
根据本发明的实施方式,唯一识别码、固定字符串、密码的串接顺序可以是可调的。
根据本发明的又一方面,提供了一种密码加密系统,用于对用户的密码进行加密,其中每个用户具有唯一识别码,其特征在于,系统包括:获取装置,用于获取固定字符串;串接装置,用于将唯一识别码、固定字符串、密码串接成串接字符串;摘要装置,用于通过散列算法对串接字符串执行摘要运算,获得用户的密码摘要值。
根据本发明的实施方式,固定字符串的存放位置可以不同于密码摘要值的存放位置。
根据本发明的实施方式,该系统可以进一步包括编码装置,用于对密码摘要值进行编码,获得用户的密码编码值。编码可以是Base64编码等。固定字符串的存放位置可以不同于密码编码值的存放位置。
根据本发明的实施方式,散列算法可以是SHA1、SHA192、SHA256、SHA384、SHA512、HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512等。
根据本发明的实施方式,唯一识别码、固定字符串、密码的串接顺序可以是可调的。
根据本发明的再一方面,提供了一种密码校验系统,用于对用户的密码进行校验,其中每个用户具有唯一识别码以及密码数据,其特征在于,系统包括:第一获取装置,用于根据用户输入获取唯一标识码和用户输入密码;第二获取装置,用于获取与密码数据相关的固定字符串;串接装置,用于将唯一识别码、固定字符串、用户输入密码串接成串接字符串;运算装置,用于通过散列算法对串接字符串执行摘要运算,获得摘要运算结果作为用户的待验密码数据;校验装置,用于将待验密码数据与用户的密码数据进行比较,获得校验结果。
根据本发明的实施方式,固定字符串的存放位置可以不同于密码数据的存放位置。
根据本发明的实施方式,运算装置在通过散列算法对串接字符串执行摘要运算后可以对所述摘要运算结果进行编码,获得经编码的摘要运算结果作为用户的待验密码数据。编码可以是Base64编码等。
根据本发明的实施方式,散列算法可以是SHA1、SHA192、SHA256、SHA384、SHA512、HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512等。
根据本发明的实施方式,唯一识别码、固定字符串、密码的串接顺序可以是可调的。
不同于现有技术,根据本发明的各种实施方式,通过应用根据本发明的密码加密方法和系统以及密码校验方法和系统,本发明能够应用于卡密数据保护、用户的安保问题答案保护等等。由于本发明在用户密码摘要值运算过程中,增加了用户唯一因子——用户唯一识别码,确保了用户密码摘要值的唯一性,从而赋予了密码数据库文件抵抗选择明文攻击和事先选择明文攻击的能力。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本发明的上述以及其他特征将更加明显,本发明附图中相同的参考标号表示相同或相似的元素。在附图中:
图1是根据本发明的实施方式的密码加密方法的流程图;
图2是根据本发明的实施方式的密码校验方法的流程图;
图3是根据本发明的实施方式的密码加密系统的框图;
图4是根据本发明的实施方式的密码校验系统的框图;
图5是用来实践本发明实施方式的计算机系统的示意性框图。
具体实施方式
下面结合图1来阐述根据本发明的实施方式的密码加密方案。
根据本发明的密码加密方法用于对用户的密码进行加密,其中每个用户具有唯一识别码。该唯一识别码可以是用户名或用户ID(网站分配给每个用户的一个具备唯一性的数字编号)。需要进行加密的用户密码是与每个用户对应的,也就是与用户的唯一识别码对应的。
在步骤S102中,获取固定字符串。该固定字符串可以是一个固定的定长字符串,称为网站秘密因子或Salt。该字符串优选地与用户密码数据库分开存放,严格限制只有授权的用户/程序才能读取。可选地,不同于上述只采用同一个salt值的情况,可以为每个用户生成与之唯一识别码对应的salt值,并将唯一识别码与salt值一一对应地进行存储,同样优选地与用户密码数据库分开存放,严格限制只有授权的用户/程序才能读取。
在步骤S104中,将唯一识别码、固定字符串、密码串接成串接字符串。可以调整网站秘密因子、用户唯一识别码和用户密码的串接顺序。如果是一个唯一识别码对应一个salt值的情况,则相应地是将用户唯一识别码、与该唯一识别码对应的salt值、用户密码串接成串接字符串。
在步骤S106中,通过散列算法对串接字符串执行摘要运算,获得用户的密码摘要值。优选地通过哈希算法SHA-256对串接结果字符串执行摘要运算。SHA-256是美国国家标准和技术局发布的标准FIPS PUB 180中规定的一种单向散列算法,适用于长度不超过2^64二进制位的消息。其输出散列值长度256bit,中继散列值长度256bit,数据区块长度512bit,最大输入信息长度(2^64-1)bit,一个Word长度32bit,循环次数64。可以调整摘要计算方法,如用SHA1、SHA192、SHA384、SHA512等摘要算法,或者用HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512等HMAC算法来计算摘要值(摘要值=HMAC算法(网站秘密因子,用户唯一识别码+用户密码))。
根据本发明的实施方式,该方法可以进一步包括对密码摘要值进行编码,获得用户的密码编码值。优选地对摘要运算结果执行Base64编码。Base64编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。Base64编码要求把每3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。最后将编码结果存入用户密码数据库相应字段。
下面结合图2来阐述根据本发明的实施方式的密码校验方案。
根据本发明的密码校验方法与根据本发明的密码加密方法对应,用于对用户的密码进行校验,其中每个用户具有唯一识别码以及密码数据。该唯一识别码可以是用户名或用户ID(网站分配给每个用户的一个具备唯一性的数字编号)。需要进行校验的用户密码是与每个用户对应的,也就是与用户的唯一识别码对应的。
在步骤S202中,根据用户输入获取唯一标识码和用户输入密码。一般是网站获取用户输入的用户名和密码。
在步骤S204中,获取与密码数据相关的固定字符串。该固定字符串可以是一个固定的定长字符串,称为网站秘密因子或Salt。该字符串优选地与用户密码数据库分开存放,严格限制只有授权的用户/程序才能读取。一般是服务器预先或临时获取用户密码保护相关的网站秘密因子(Salt),然后服务器根据用户输入的用户名查找到该用户名对应的用户唯一识别码。可选地,不同于上述只采用同一个salt值的情况,可以为每个用户生成与之唯一识别码对应的salt值,并将唯一识别码与salt值一一对应地进行存储,同样优选地与用户密码数据库分开存放,严格限制只有授权的用户/程序才能读取。在一个唯一识别码对应一个salt值的情况下,相应地是服务器根据用户输入的用户名查找到该用户名对应的用户唯一识别码,然后服务器在存储唯一识别码和salt值的地方获取与该唯一识别码对应的Salt。
在步骤S206中,将唯一识别码、固定字符串、用户输入密码串接成串接字符串。可以依照密码加密方法,调整网站秘密因子、用户唯一识别码和用户密码的串接顺序。也就是说,加密时的串接顺序与进行校验时的串接顺序是相同的。
在步骤S208中,通过散列算法对串接字符串执行摘要运算,获得摘要运算结果作为用户的待验密码数据。优选地依照密码加密方法通过哈希算法SHA-256对串接结果字符串执行摘要运算。可以依照密码加密方法,调整摘要计算方法,如用SHA1、SHA192、SHA384、SHA512等摘要算法,或者用HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512等HMAC算法来计算摘要值(摘要值=HMAC算法(网站秘密因子,用户唯一识别码+用户密码))。也就是说,加密时用的摘要算法与进行校验时采用的摘要算法是相同的。
在步骤S210中,将待验密码数据与用户的密码数据进行比较,获得校验结果。这种情况下,用户的密码数据是没有经过编码步骤的,也就是说,这种情况下用户的密码数据即是密码摘要值。因此,将摘要运算结果与用户密码数据库存储的密码摘要值进行比较。相等,则校验通过,证明是该用户,授予相应权限;否则,则校验不通过,不予访问。
根据本发明的实施方式,通过散列算法对串接字符串执行摘要运算后可以依照密码加密方法对摘要运算结果进行编码,获得经编码的摘要运算结果作为用户的待验密码数据。也就是说,如果加密时对密码摘要值进行了编码,编码结果存储作为密码数据,那么校验时也对摘要运算结果进行编码,所需校验的密码数据就是一种密码编码值。优选地依照密码加密方法对摘要运算结果执行Base64编码。也就是说,如果加密时采用了Base64编码,那么进行校验时也采用Base64编码。然后将Base64编码结果与用户密码数据库存储的密码编码值进行比较。
下面结合图3来阐述根据本发明的实施方式的密码加密系统300。
根据本发明的密码加密系统300用于对用户的密码进行加密,其中每个用户具有唯一识别码。该唯一识别码可以是用户名或用户ID(网站分配给每个用户的一个具备唯一性的数字字母字符编号)。需要进行加密的用户密码是与每个用户对应的,也就是与用户的唯一识别码对应的。系统300可以包括:获取装置302,用于获取固定字符串,该固定字符串可以是一个固定的定长字符串,称为网站秘密因子或Salt,可选地,不同于上述只采用同一个salt值的情况,可以为每个用户生成与之唯一识别码对应的salt值,并将唯一识别码与salt值一一对应地进行存储;串接装置304,用于将唯一识别码、固定字符串、密码串接成串接字符串;摘要装置306,用于通过散列算法对串接字符串执行摘要运算,获得用户的密码摘要值。
固定字符串的存放位置优选地不同于密码摘要值的存放位置。
系统300优选地可以进一步包括编码装置,用于对密码摘要值进行编码,获得用户的密码编码值。编码优选地是Base64编码等。固定字符串的存放位置优选地不同于密码编码值的存放位置。
散列算法可以是SHA1、SHA192、SHA256、SHA384、SHA512、HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512等。
唯一识别码、固定字符串、密码的串接顺序优选地是可调的。
下面结合图4来阐述根据本发明的优选实施方式的密码校验系统400。
根据本发明的密码校验系统400与根据本发明的密码加密系统300对应,用于对用户的密码进行校验,其中每个用户具有唯一识别码以及密码数据。需要进行校验的用户密码是与每个用户对应的,也就是与用户的唯一识别码对应的。系统400可以包括:第一获取装置402,用于根据用户输入获取唯一标识码和用户输入密码,一般是网站获取用户输入的用户名和密码;第二获取装置404,用于获取与密码数据相关的固定字符串,该固定字符串可以是一个固定的定长字符串,称为网站秘密因子或Salt,可选地,不同于上述只采用同一个salt值的情况,可以为每个用户生成与之唯一识别码对应的salt值,并将唯一识别码与salt值一一对应地进行存储,相应地是服务器根据用户输入的用户名查找到该用户名对应的用户唯一识别码,然后服务器在存储唯一识别码和salt值的地方获取与该唯一识别码对应的Salt;串接装置406,用于将唯一识别码、固定字符串、用户输入密码串接成串接字符串;运算装置408,用于通过散列算法对串接字符串执行摘要运算,获得摘要运算结果作为用户的待验密码数据;校验装置410,用于将待验密码数据与用户的密码数据进行比较,获得校验结果,这种情况下,用户的密码数据是没有经过编码步骤的,也就是说,这种情况下用户的密码数据即是密码摘要值。因此,将摘要运算结果与用户密码数据库存储的密码摘要值进行比较,相等,则校验通过,证明是该用户,授予相应权限,否则,则校验不通过,不予访问。
固定字符串的存放位置优选地不同于密码数据的存放位置。
运算装置408在通过散列算法对串接字符串执行摘要运算后优选地对摘要运算结果进行编码,获得经编码的摘要运算结果作为用户的待验密码数据。也就是说,如果加密系统300对密码摘要值进行了编码,编码结果存储作为密码数据,那么校验系统400也对摘要运算结果进行编码,所需校验的密码数据就是一种密码编码值。编码优选地是Base64编码等。也就是说,如果加密系统300采用了Base64编码,那么校验系统400也采用Base64编码。
散列算法可以是SHA1、SHA192、SHA256、SHA384、SHA512、HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512等。也就是说,加密系统300采用的散列算法与校验系统400采用的散列算法相同。
唯一识别码、固定字符串、密码的串接顺序优选地是可调的。也就是说,加密系统300采用的串接顺序与校验系统400采用的串接顺序相同。
本发明的技术方案具有以下特点:
(1)密码编码值是特定形式的密码密文,不能通过直接读取、解码、解密等方式从所存储的密码编码值中获取到密码的明文。
(2)在不知道Salt的情况下,不可能生成正确的密码编码值,因此可以抵抗选择明文攻击。
(3)为每个用户生成的密码编码值都是不一样的,不具备统计规律。因此,可以抵抗事先选择明文攻击。
(4)哈希算法SHA256会产生256bit(32byte)长度的摘要,其安全强度和128bit密钥长度的对称加密算法AES相当,对商业用户来说,在未来30年内被穷举破解的可能性非常小。
本发明还可以用于存储保护安保问题答案,以及其他任何由用户输入、且不具备唯一性的内容。
图5示出了适于用来实践本发明实施方式的计算机系统的示意性框图。如图5所示,计算机系统可以包括:CPU(中央处理单元)501、RAM(随机存取存储器)502、ROM(只读存储器)503、系统总线504、硬盘控制器505、键盘控制器506、串行接口控制器507、并行接口控制器508、显示控制器509、硬盘510、键盘511、串行外部设备512、并行外部设备513和显示器514。在这些设备中,与系统总线504耦合的有CPU 501、RAM 502、ROM 503、硬盘控制器505、键盘控制器506、串行控制器507、并行控制器508和显示控制器509。硬盘510与硬盘控制器505耦合,键盘511与键盘控制器506耦合,串行外部设备512与串行接口控制器507耦合,并行外部设备513与并行接口控制器508耦合,以及显示器514与显示控制器509耦合。
应当理解,图5所示的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
特别地,除硬件实施方式之外,本发明的实施方式可以通过计算机程序产品的形式实现。例如,参考图1描述的方法可以通过计算机程序产品来实现。该计算机程序产品可以存储在例如图5所示的RAM 504、ROM504、硬盘510和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统500上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图5中示出的CPU 501)执行的程序指令。所述程序指令至少可以包括:用于获取固定字符串的指令;用于将唯一识别码、固定字符串、密码串接成串接字符串的指令;以及用于通过散列算法对串接字符串执行摘要运算,获得用户的密码摘要值的指令。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
说明书中提及的通信网络可以包括各类网络,包括但不限于局域网(“LAN”),广域网(“WAN”),根据IP协议的网络(例如,因特网)以及端对端网络(例如,ad hoc对等网络)。
应当注意,尽管在上文详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
虽然已经参考若干具体实施方式描述了本发明,但是应该理解,本发明并不限于所公开的具体实施方式。本发明旨在涵盖所附权利要求书的精神和范围内所包括的各种修改和等同布置。所附权利要求书的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。

Claims (26)

1.一种密码加密方法,用于对用户的密码进行加密,其中每个用户具有唯一识别码,所述需要加密的用户密码与每个用户对应,其特征在于,所述方法用于对用户密码的存储保护,所述方法包括步骤:
获取为所述每个用户生成的与所述每个用户的唯一识别码对应的固定字符串;
将所述唯一识别码、所述固定字符串、所述密码串接成串接字符串;
通过散列算法对所述串接字符串执行摘要运算,获得所述用户的密码摘要值,为每个用户生成的密码摘要值均不同。
2.根据权利要求1所述的密码加密方法,其特征在于,所述固定字符串的存放位置不同于所述密码摘要值的存放位置。
3.根据权利要求1所述的密码加密方法,其特征在于,所述方法进一步包括对所述密码摘要值进行编码,获得所述用户的密码编码值。
4.根据权利要求3所述的密码加密方法,其特征在于,所述编码是Base64编码。
5.根据权利要求3所述的密码加密方法,其特征在于,所述固定字符串的存放位置不同于所述密码编码值的存放位置。
6.根据权利要求1-5中任一项所述的密码加密方法,其特征在于,所述散列算法选自包括SHA1、SHA192、SHA256、SHA384、SHA512、HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512的组。
7.根据权利要求1-5中任一项所述的密码加密方法,其特征在于,所述唯一识别码、所述固定字符串、所述密码的串接顺序是可调的。
8.一种密码校验方法,用于对用户的密码进行校验,其中每个用户具有唯一识别码以及密码数据,所述需要校验的用户密码与每个用户对应,其特征在于,所述方法用于对用户密码的存储保护,所述方法包括步骤:
根据用户输入获取所述唯一标识码和用户输入密码;
获取与所述密码数据相关的为所述用户生成的与所述用户的唯一识别码对应的固定字符串;
将所述唯一识别码、所述固定字符串、所述用户输入密码串接成串接字符串;
通过散列算法对所述串接字符串执行摘要运算,获得摘要运算结果作为所述用户的待验密码数据,为每个用户生成的摘要运算结果均不同;
将所述待验密码数据与所述用户的密码数据进行比较,获得校验结果。
9.根据权利要求8所述的密码校验方法,其特征在于,所述固定字符串的存放位置不同于所述密码数据的存放位置。
10.根据权利要求8所述的密码校验方法,其特征在于,通过散列算法对所述串接字符串执行摘要运算后对所述摘要运算结果进行编码,获得经编码的摘要运算结果作为所述用户的待验密码数据。
11.根据权利要求10所述的密码校验方法,其特征在于,所述编码是Base64编码。
12.根据权利要求8-11中任一项所述的密码校验方法,其特征在于,所述散列算法选自包括SHA1、SHA192、SHA256、SHA384、SHA512、HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512的组。
13.根据权利要求8-11中任一项所述的密码校验方法,其特征在于,所述唯一识别码、所述固定字符串、所述密码的串接顺序是可调的。
14.一种密码加密系统,用于对用户的密码进行加密,其中每个用户具有唯一识别码,所述需要加密的用户密码与每个用户对应,其特征在于,所述系统用于对用户密码的存储保护,所述系统包括:
获取装置,用于获取为所述每个用户生成的与所述每个用户的唯一识别码对应的固定字符串;
串接装置,用于将所述唯一识别码、所述固定字符串、所述密码串接成串接字符串;
摘要装置,用于通过散列算法对所述串接字符串执行摘要运算,获得所述用户的密码摘要值,为每个用户生成的密码摘要值均不同。
15.根据权利要求14所述的密码加密系统,其特征在于,所述固定字符串的存放位置不同于所述密码摘要值的存放位置。
16.根据权利要求14所述的密码加密系统,其特征在于,所述系统进一步包括编码装置,用于对所述密码摘要值进行编码,获得所述用户的密码编码值。
17.根据权利要求16所述的密码加密系统,其特征在于,所述编码是Base64编码。
18.根据权利要求16所述的密码加密系统,其特征在于,所述固定字符串的存放位置不同于所述密码编码值的存放位置。
19.根据权利要求14-18中任一项所述的密码加密系统,其特征在于,所述散列算法选自包括SHA1、SHA192、SHA256、SHA384、SHA512、HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512的组。
20.根据权利要求14-18中任一项所述的密码加密系统,其特征在于,所述唯一识别码、所述固定字符串、所述密码的串接顺序是可调的。
21.一种密码校验系统,用于对用户的密码进行校验,其中每个用户具有唯一识别码以及密码数据,所述需要校验的用户密码与每个用户对应,其特征在于,所述系统用于对用户密码的存储保护,所述系统包括:
第一获取装置,用于根据用户输入获取所述唯一标识码和用户输入密码;
第二获取装置,用于获取与所述密码数据相关的为所述用户生成的与所述用户的唯一识别码对应的固定字符串;
串接装置,用于将所述唯一识别码、所述固定字符串、所述用户输入密码串接成串接字符串;
运算装置,用于通过散列算法对所述串接字符串执行摘要运算,获得所述用户的待验密码数据,为每个用户生成的摘要运算结果均不同;
校验装置,用于将所述待验密码数据与所述用户的密码数据进行比较,获得校验结果。
22.根据权利要求21所述的密码校验系统,其特征在于,所述固定字符串的存放位置不同于所述密码数据的存放位置。
23.根据权利要求21所述的密码校验系统,其特征在于,所述运算装置在通过散列算法对所述串接字符串执行摘要运算后对摘要运算结果进行编码,获得所述用户的待验密码数据。
24.根据权利要求23所述的密码校验系统,其特征在于,所述编码是Base64编码。
25.根据权利要求21-24中任一项所述的密码校验系统,其特征在于,所述散列算法选自包括SHA1、SHA192、SHA256、SHA384、SHA512、HMAC-SHA1、HMAC-SHA192、HMAC-SHA256、HMAC-SHA384、HMAC-SHA512的组。
26.根据权利要求21-24中任一项所述的密码校验系统,其特征在于,所述唯一识别码、所述固定字符串、所述密码的串接顺序是可调的。
CN201210401262.XA 2012-10-19 2012-10-19 密码加密方法和系统以及密码校验方法和系统 Active CN103780379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210401262.XA CN103780379B (zh) 2012-10-19 2012-10-19 密码加密方法和系统以及密码校验方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210401262.XA CN103780379B (zh) 2012-10-19 2012-10-19 密码加密方法和系统以及密码校验方法和系统

Publications (2)

Publication Number Publication Date
CN103780379A CN103780379A (zh) 2014-05-07
CN103780379B true CN103780379B (zh) 2017-09-19

Family

ID=50572254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210401262.XA Active CN103780379B (zh) 2012-10-19 2012-10-19 密码加密方法和系统以及密码校验方法和系统

Country Status (1)

Country Link
CN (1) CN103780379B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2529633A (en) * 2014-08-26 2016-03-02 Ibm Password-based generation and management of secret cryptographic keys
CN105743638B (zh) * 2016-05-13 2018-10-23 江苏中天科技软件技术有限公司 基于b/s架构系统客户端授权认证的方法
CN106330972A (zh) * 2016-10-27 2017-01-11 成都知道创宇信息技术有限公司 一种保护用户网站密码的方法
CN108880812B (zh) * 2017-05-09 2022-08-09 北京京东尚科信息技术有限公司 数据加密的方法和系统
CN107391978B (zh) * 2017-07-06 2020-01-14 厦门市美亚柏科信息股份有限公司 字典膨胀方法及计算机可读存储介质
CN108011714B (zh) * 2017-11-30 2020-10-02 公安部第三研究所 基于密码学运算实现数据对象主体标识的保护方法及系统
CN107819569B (zh) * 2017-12-14 2018-09-11 平安科技(深圳)有限公司 登录信息的加密方法及终端设备
CN108616512B (zh) * 2018-04-04 2021-01-19 广州慧睿思通信息科技有限公司 一种改进的ppt2003文件破译方法和装置
CN108764904B (zh) * 2018-05-25 2021-10-08 广东盈峰普惠互联小额贷款股份有限公司 一种分布式账户系统中双密钥防盗方法
CN108933950B (zh) * 2018-08-24 2020-06-05 腾讯科技(深圳)有限公司 终端标识确定方法及装置、计算机设备及存储介质
CN109522327A (zh) * 2018-11-16 2019-03-26 北京京东金融科技控股有限公司 信息生成方法、装置和系统
CN109587276A (zh) * 2019-01-11 2019-04-05 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种数据备份方法、系统及相关组件
CN111210301A (zh) * 2019-12-27 2020-05-29 杭州睿信数据科技有限公司 唯一标识码生成方法及装置
CN111339270B (zh) * 2020-02-20 2023-04-25 中国农业银行股份有限公司 一种密码校验方法及装置
CN111914515A (zh) * 2020-08-17 2020-11-10 江苏华泽微福科技发展有限公司 一种票券加密系统及验证方法
CN115050131B (zh) * 2022-08-15 2022-11-15 珠海翔翼航空技术有限公司 基于人脸特征摘要和云映射的机场权限设置方法、系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567294A (zh) * 2003-06-14 2005-01-19 华为技术有限公司 一种对用户进行认证的方法
CN1878057A (zh) * 2005-06-07 2006-12-13 王向东 一种加密二维条码的组成及应用方法
CN101051904A (zh) * 2007-05-17 2007-10-10 成都金山互动娱乐科技有限公司 一种保护网络应用程序使用账号密码进行登录的方法
CN201467167U (zh) * 2009-08-07 2010-05-12 薛明 一种密码编码器和密码保护系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197765B2 (en) * 2000-12-29 2007-03-27 Intel Corporation Method for securely using a single password for multiple purposes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567294A (zh) * 2003-06-14 2005-01-19 华为技术有限公司 一种对用户进行认证的方法
CN1878057A (zh) * 2005-06-07 2006-12-13 王向东 一种加密二维条码的组成及应用方法
CN101051904A (zh) * 2007-05-17 2007-10-10 成都金山互动娱乐科技有限公司 一种保护网络应用程序使用账号密码进行登录的方法
CN201467167U (zh) * 2009-08-07 2010-05-12 薛明 一种密码编码器和密码保护系统

Also Published As

Publication number Publication date
CN103780379A (zh) 2014-05-07

Similar Documents

Publication Publication Date Title
CN103780379B (zh) 密码加密方法和系统以及密码校验方法和系统
US20240007308A1 (en) Confidential authentication and provisioning
CN108737326B (zh) 用于进行令牌验证的方法、系统、装置及电子设备
CN110401615B (zh) 一种身份认证方法、装置、设备、系统及可读存储介质
US9906363B2 (en) Encrypted data verification system, method and recording medium
Debnath et al. Brief review on journey of secured hash algorithms
JP2016515235A5 (zh)
Zheng et al. Research for the application and safety of MD5 algorithm in password authentication
KR101739203B1 (ko) 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
Yevseiev et al. Developing of multi-factor authentication method based on niederreiter-mceliece modified crypto-code system
Teh et al. A Chaos‐Based Authenticated Cipher with Associated Data
CN107204846A (zh) 数字签名生成方法、系统、节点模块及共同随机数协商确定方法
CN110943841A (zh) 使用白盒加密的口令认证
Alizai et al. Key-based cookie-less session management framework for application layer security
CN112385175B (zh) 一种用于数据加密和完整性的设备
US20120311338A1 (en) Secure authentication of identification for computing devices
Yevseiev et al. The development of the method of multifactor authentication based on hybrid cryptocode constructions on defective codes
Cortez et al. Cryptanalysis of the Modified SHA256
Prabakaran et al. Secure channel for financial transactions in cloud environment using blockchain technology
Elganzoury et al. A new secure one-time password algorithm for mobile applications
CN115632797A (zh) 一种基于零知识证明的安全身份验证方法
Chen et al. The Security of Key Derivation Functions in WINRAR.
Banga et al. Protecting User Credentials against SQL Injection through Cryptography and Image Steganography
KR20150103394A (ko) 암호화 시스템 및 그것의 암호 통신 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1194564

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1194564

Country of ref document: HK

TR01 Transfer of patent right

Effective date of registration: 20191204

Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands

Patentee after: Innovative advanced technology Co., Ltd

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Co., Ltd.

TR01 Transfer of patent right