CN103326991A - 一种用户密码加密存储及验证的方法 - Google Patents
一种用户密码加密存储及验证的方法 Download PDFInfo
- Publication number
- CN103326991A CN103326991A CN 201210073212 CN201210073212A CN103326991A CN 103326991 A CN103326991 A CN 103326991A CN 201210073212 CN201210073212 CN 201210073212 CN 201210073212 A CN201210073212 A CN 201210073212A CN 103326991 A CN103326991 A CN 103326991A
- Authority
- CN
- China
- Prior art keywords
- user
- password
- authentication
- cipher
- cryptographic hash
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明属于网络信息安全领域,本发明公开了一种用户密码加密存储及验证的方法:通过将用户的用户名、登陆次数以及给定的字符串作为参数,与用户密码按照一定方式进行混合,再对混合值进行哈希运算;或将上述参数与密码的哈希值按照一定方式进行混合,将结果进行存储并用于用户验证。
Description
技术领域
本发明属于网络信息安全领域,涉及一种用户密码加密存储及验证的方法,应用在网络用户注册或登陆网络服务时的访问控制,使用户的密码得到有效保护。
背景技术
在网络应用中,最常见也是最基本的访问控制方法是“用户名/密码”的方式,即:用户在申请某项网络服务时,首先要选择一个用户名及与之对应的密码进行注册,服务提供方将该用户的用户名/密码存储到“用户登陆信息数据库”中,之后,当用户再次登陆服务时,需要提供用户名/密码,服务方通过调取数据库中的信息进行比对,决定是否提供服务。这种直接用明文存储用户密码的方式是极不安全的:首先,数据库容易被攻击,当攻击者入侵到数据库,全部密码将泄密;其次,服务方的网络管理员可以接触所有用户密码,他可以进行数据库的备份,在此过程中会有意或无意地泄露密码。
为了加强用户密码的安全性,大多数服务提供方会采用加密的方式存储用户密码,最常见的做法是:利用哈希函数,将用户的密码转换成哈希值,再存入数据库,用户登陆时,输入用户名/密码,由于哈希值与密码一一对应,服务方只需比对用户名和哈希值的匹配关系来进行访问控制。哈希函数是一个“单向函数”,即一个数值(比如用户密码)很容易通过哈希函数运算得到其哈希值,而用一个哈希值很难反向算出其原值。这样,即使攻击者入侵(或获得)了用户密码的数据库,他也只得到用户密码的哈希值,而不是密码,哈希值无法在登陆流程(或界面)直接使用,从而一定程度上保证了用户密码的安全。
但是,由于大部分用户为了方便或缺乏设置密码的经验,其设置的密码通常是6位数字,或8位日期,最多是6-8位的字母数字混合,这就给攻击者以可趁之机,他可以事先“穷举”所有常用组合的哈希值,建立对应关系表,当他得到一个以哈希值存储的用户密码数据库时,可以由哈希值在关系表中查到对应的密码值,从而破解了大部分用户的密码。对攻击者而言,对应关系表并不庞大,穷举6位数只有百万条记录,穷举日期(一百年)只要3万多条,6位字母数字组合也就10亿的量级,这对于攻击者并非难事。而且,目前常用的哈希算法,如MD5、SHA-1等,均存在“碰撞”的缺陷,即不同的数值经过哈希计算可能得到相同的哈希值,这样,即使用户采用较复杂的密码,如果其哈希值与攻击者所拥有的关系表中的一条记录的哈希值发生碰撞,其密码同样遭到破解。不幸的是,攻击者往往掌握大量易发生碰撞的哈希值。
因此,如何在不改变用户习惯的条件下解决用户密码的安全存储,使得攻击者即使得到用户密码的数据库也无从破解,已成为使用用户名/密码作为访问控制机制中亟待解决的重大问题。
发明内容
本发明的目的是为了增强使用用户名/密码作为访问控制机制的安全性,提出一种用户密码加密存储及验证的方法,有效地抵御攻击者获得用户密码数据库后对密码的破解,从而保证了用户密码安全。
本发明的技术方案是:
通过利用一些已知参数,如用户名、用户登陆次数、或者系统设置的随机数,按照一定方式与用户密码混合,这一过程称之为“給密码加糖”(“先加糖”),然后对加了糖的密码进行哈希计算,得到的哈希值进行存储或比对;或者,先对密码进行哈希计算,然后利用已知参数按照一定方式与哈希值混合,这一过程称之为“給哈希值加糖”(“后加糖”),最后对加了糖的哈希值进行存储或比对。两个过程可以分别单独使用或共同使用。公式如下:
设:用户名:Uname;密码:Pword;登陆次数(时间):T;随机数(字符串):R;哈希函数:H();加糖函数:S()。
1、先加糖:首先得到加了糖的密码:Pw’=S(Pword,Uname,T,R),然后对Pw’进行哈希运算:H(Pw’)。
合并起来就是存储并比对H(S(Pword,Uname,T,R))
2、后加糖:存储并比对S(H(Pword),Uname,T,R)
3、共同使用:存储并比对S(H’,Uname,T,R);
其中:H’=H(S(Pword,Uname,T,R))
4、简要说明:H()为任意一种哈希函数,如MD5,SHA-1等;S()为对其中参数字符串的简单操作,服务方可以自行定义,后面“具体实施方式”将給出例子;参数R可以由服务方自行定义简单的字符串,作为加糖位数的填充;参数T在静态使用本方法时可以缺省,动态使用时,服务提供方应同时存储用户的登陆次数T和比对值,当用户登陆时,先查到其上次的T值,作为参数之一,解出比对值完成验证,然后T+1,完成新的比对值的计算,将新的T值和比对值存储起来。
本发明的优点是:
1、由于“加了糖”的密码位数远远大于原密码位数,比如可以设定为大于等于15位,15位的数字字母组合空间约为10^23(10的23次方)攻击者不可能事先构建这样庞大的哈希值对应表,因此,即使用户的密码很简单,但攻击者也无法通过穷举哈希值的对应表来破解用户密码;
2、尽管简单的哈希函数存在“碰撞”,但是,由于給密码“加了糖”,攻击者无法直接用碰撞值来取代用户密码实施攻击,也无从由碰撞值解析出用户密码;
3、动态使用本方法,使得比对值不断变化,进一步增加攻击者的破解难度,同时可防止“重放攻击”。
具体实施方式
设:用户名:Uname;密码:Pword;随机字符串:xyz;R;哈希函数:H();加糖函数:S()。
加糖的规则为,将用户名、密码、随机字符串顺序组成新的字符串,如果新的字符串位数小于15,重复一遍该字符串,直到大于15位。
例如:用户名为AB,密码为123,则S(AB,123,xyz)=AB123xyzAB123xyz;
“AB 123xyzAB 123xyz”为“加了糖的密码”,服务提供方存储并比对该值的哈希值H(AB123xyzAB123xyz)。
Claims (3)
1.一种用户密码加密存储及验证的方法,其特征在于:将用户的用户名、给定的字符串作为参数,与用户密码按照一定方式进行混合,再对混合值进行哈希运算,将结果进行存储并用于用户验证。
2.根据权利要求1所述一种用户密码加密存储及验证的方法,其特征在于:将用户的用户名、给定的字符串作为参数,与密码的哈希值按照一定方式进行混合,将结果进行存储并用于用户验证。
3.根据权利要求1所述一种用户密码加密存储及验证的方法,其特征在于:将用户的用户名、登陆次数以及给定的字符串作为参数,与用户密码按照一定方式进行混合,再对混合值进行哈希运算,将结果以及登陆次数进行存储并用于用户下次登陆时验证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201210073212 CN103326991A (zh) | 2012-03-20 | 2012-03-20 | 一种用户密码加密存储及验证的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201210073212 CN103326991A (zh) | 2012-03-20 | 2012-03-20 | 一种用户密码加密存储及验证的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103326991A true CN103326991A (zh) | 2013-09-25 |
Family
ID=49195525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201210073212 Pending CN103326991A (zh) | 2012-03-20 | 2012-03-20 | 一种用户密码加密存储及验证的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103326991A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394532A (zh) * | 2014-11-21 | 2015-03-04 | 北京京东尚科信息技术有限公司 | 移动端防暴力破解的安全登录方法 |
CN104834863A (zh) * | 2015-03-31 | 2015-08-12 | 努比亚技术有限公司 | Wi-Fi密码存储方法及装置 |
CN105491030A (zh) * | 2015-11-27 | 2016-04-13 | 韦昱灵 | 一种网站用户密码加密和验证方法 |
CN106355106A (zh) * | 2016-08-30 | 2017-01-25 | 深圳市引导美电子商务有限公司 | 一种账户信息存储方法及系统 |
CN106657002A (zh) * | 2016-11-11 | 2017-05-10 | 广东工业大学 | 一种新型防撞库关联时间多密码的身份认证方法 |
CN106909852A (zh) * | 2017-03-06 | 2017-06-30 | 广东工业大学 | 基于三重md5加密算法的智能合约加密方法及装置 |
CN106941404A (zh) * | 2017-04-25 | 2017-07-11 | 中国联合网络通信集团有限公司 | 密钥保护方法及装置 |
CN108075880A (zh) * | 2017-11-28 | 2018-05-25 | 珠海金山网络游戏科技有限公司 | 一种网络游戏服务器登录安全系统及方法 |
CN109391474A (zh) * | 2018-12-25 | 2019-02-26 | 武汉思普崚技术有限公司 | 一种非加密链路的安全认证方法及系统 |
CN111917535A (zh) * | 2020-06-30 | 2020-11-10 | 山东信通电子股份有限公司 | 一种数据加密存储方法、装置及服务器 |
CN112464211A (zh) * | 2020-12-21 | 2021-03-09 | 合肥大唐存储科技有限公司 | 一种验证固态硬盘中信息的方法、固态硬盘和服务器 |
WO2021048686A1 (en) * | 2019-09-09 | 2021-03-18 | International Business Machines Corporation | Security credentials management for client applications |
-
2012
- 2012-03-20 CN CN 201210073212 patent/CN103326991A/zh active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104394532A (zh) * | 2014-11-21 | 2015-03-04 | 北京京东尚科信息技术有限公司 | 移动端防暴力破解的安全登录方法 |
CN104834863A (zh) * | 2015-03-31 | 2015-08-12 | 努比亚技术有限公司 | Wi-Fi密码存储方法及装置 |
CN105491030A (zh) * | 2015-11-27 | 2016-04-13 | 韦昱灵 | 一种网站用户密码加密和验证方法 |
CN106355106A (zh) * | 2016-08-30 | 2017-01-25 | 深圳市引导美电子商务有限公司 | 一种账户信息存储方法及系统 |
CN106657002A (zh) * | 2016-11-11 | 2017-05-10 | 广东工业大学 | 一种新型防撞库关联时间多密码的身份认证方法 |
CN106909852A (zh) * | 2017-03-06 | 2017-06-30 | 广东工业大学 | 基于三重md5加密算法的智能合约加密方法及装置 |
CN106909852B (zh) * | 2017-03-06 | 2019-11-08 | 广东工业大学 | 基于三重md5加密算法的智能合约加密方法及装置 |
CN106941404B (zh) * | 2017-04-25 | 2020-06-30 | 中国联合网络通信集团有限公司 | 密钥保护方法及装置 |
CN106941404A (zh) * | 2017-04-25 | 2017-07-11 | 中国联合网络通信集团有限公司 | 密钥保护方法及装置 |
CN108075880A (zh) * | 2017-11-28 | 2018-05-25 | 珠海金山网络游戏科技有限公司 | 一种网络游戏服务器登录安全系统及方法 |
CN109391474A (zh) * | 2018-12-25 | 2019-02-26 | 武汉思普崚技术有限公司 | 一种非加密链路的安全认证方法及系统 |
WO2021048686A1 (en) * | 2019-09-09 | 2021-03-18 | International Business Machines Corporation | Security credentials management for client applications |
US11269987B2 (en) | 2019-09-09 | 2022-03-08 | International Business Machines Corporation | Security credentials management for client applications |
GB2601098A (en) * | 2019-09-09 | 2022-05-18 | Ibm | Security credentials management for client applications |
GB2601098B (en) * | 2019-09-09 | 2022-09-07 | Ibm | Security credentials management for client applications |
CN111917535A (zh) * | 2020-06-30 | 2020-11-10 | 山东信通电子股份有限公司 | 一种数据加密存储方法、装置及服务器 |
CN112464211A (zh) * | 2020-12-21 | 2021-03-09 | 合肥大唐存储科技有限公司 | 一种验证固态硬盘中信息的方法、固态硬盘和服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103326991A (zh) | 一种用户密码加密存储及验证的方法 | |
US9386009B1 (en) | Secure identification string | |
US8140855B2 (en) | Security-enhanced log in | |
CN104348609B (zh) | 一种非存储的密码管理算法 | |
CN103701829B (zh) | 一种离线解析dpapi加密数据的方法 | |
CN102006306A (zh) | 一种web服务的安全认证方法 | |
US20150334096A1 (en) | Method and arrangement for secure communication between network units in a communication network | |
CN101788959A (zh) | 一种固态硬盘安全加密系统 | |
CN103684758B (zh) | 一种用户密码混合加密的方法及系统 | |
CN104333545B (zh) | 对云存储文件数据进行加密的方法 | |
CN103500202B (zh) | 一种轻量级数据库的安全保护方法及系统 | |
CN103236930A (zh) | 数据加密方法和系统 | |
CN104573549A (zh) | 一种可信的数据库机密性保护方法及系统 | |
CN106415585A (zh) | 安全启动期间的密钥提取 | |
US10362023B2 (en) | Authentication information encryption server apparatuses, systems non-transitory computer readable mediums and methods for improving password security | |
CN105656626B (zh) | 逆向重组加密方法 | |
CN105740725A (zh) | 一种文件保护方法与系统 | |
GB2488310A (en) | A method and system for authenticating a computer user by using an array of elements | |
CN103138927A (zh) | 一种用于指纹认证的加密存储设备中密钥控制方法 | |
CN105187382A (zh) | 防止撞库攻击的多因子身份认证方法 | |
CN107784207A (zh) | 金融app界面的显示方法、装置、设备及存储介质 | |
CN102427459A (zh) | 基于Usbkey的离线授权方法 | |
WO2021111824A8 (ja) | 電子署名システム及び耐タンパ装置 | |
WO2013170822A2 (zh) | 处理登陆服务器的密码的方法和装置 | |
CN104363093A (zh) | 通过动态授权码对文件数据加密的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
DD01 | Delivery of document by public notice |
Addressee: Jubo Networks (Beijing) Co., Ltd. Document name: Notification that Application Deemed to be Withdrawn |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130925 |