CN111130753A - 基于md5加密的提高用户密码安全性的方法 - Google Patents
基于md5加密的提高用户密码安全性的方法 Download PDFInfo
- Publication number
- CN111130753A CN111130753A CN201911251536.XA CN201911251536A CN111130753A CN 111130753 A CN111130753 A CN 111130753A CN 201911251536 A CN201911251536 A CN 201911251536A CN 111130753 A CN111130753 A CN 111130753A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- salt
- user
- website
- password
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了基于MD5加密的提高用户密码安全性的方法,涉及数据安全技术领域。本发明包括利用前端的JavaScript先对用户输入的明文密码进行组合Salt后采用MD5加密产生一次MD5密文;将加密后的一次MD5密文传输到网站后端;网站后端随机生成唯一Salt;网站后端将所述唯一Salt与用户ID一同存入Salt数据库;将前端传递的一次MD5密文与唯一Salt组合后进行第二次MD5不可逆加密产生二次MD5密文,并将二次MD5密文存入密文数据库中。本发明通过在前端传输数据之前先利用JavaScript进行第一次加密,从而防止明文密码在传输过程中被截获;即使在传输过程中被截获,那么攻击者也只能截获加密后的字符串,从而大大提高了安全性。
Description
技术领域
本发明属于数据安全技术领域,特别是涉及一种基于MD5加密的提高用户密码安全性的方法。
背景技术
在设计一个完整的可用网站时,网站会有相当多不同的用户登录。针对不同的使用者需要区分不同的用户,每个用户都需要通过输入自己的密码来登录系统。而系统后台需要保存每个用户的密码。如何保存用户的密码而确保不会泄露是一个比较重要的问题。
现有的比较常用的一种是后台密码存储设计是从前端直接传回密码明文;在后台会有一个设计好的固定的Salt,在后台将前端传回的密码与固定的Salt进行组合;然后将组合后的密码通过MD5这种不可逆加密生成密文,最终将生成的密文存储在数据库中。当用户登录时,对用户输入的密码进行同样的操作,即与Salt组合后进行MD5加密,如果最终生成的密文与数据库里存储的密码相同,则用户登录成功。
现有的这种密码加密存储方式的Salt是固定的,如果Salt不慎泄露,攻击者可以通过数据库中存储的密码进行反查彩虹表,假如查出结果再去除Salt,就很有可能得知用户的原始密码。攻击者也可以将泄露的Salt和可能的常见密码进行组合,然后进行MD5加密后再与数据库中的密码进行对比,同样也很有可能得出明文密码。而且用户的原始密码越简单常见,对于攻击者来说就越容易破解成功。而在网站注册中,用户为了方便好记,是趋向于使用简单的密码的。这也降低了了这种密码存储方式的安全性。
如果使用的是HTTP协议的话,从前端传输到后端的话;直接明文传输也有可能存在传输过程中被截获的情况,这样攻击者就能直接得到用户的明文密码了,这样是极其不安全的。而采用HTTPS协议的话,需要额外的技术支持,会加重服务端的负担,同时CA机构颁发的证书是需要年费的,综合来说提高了成本。
使用固定Salt进行组合然后加密的方式,如果不同用户注册时使用了相同的密码,那么最终加密后存储在数据库里的密文也将是相同的。如果数据库一旦不慎泄露,攻击者很容易通过相同的密文推断出哪些用户的密码相同,一旦破解一个用户的密码,极有可能就有多个用户的原始密码被掌握。
发明内容
本发明的目的在于提供基于MD5加密的提高用户密码安全性的方法,通过在前端传输数据之前先利用JavaScript进行第一次加密,从而防止明文密码在传输过程中被截获;通过网站后端设置Salt产生服务,用于根据用户ID生成互不相同的唯一Salt;可以防止固定的Salt泄露,避免攻击者通过组合Salt与猜测的密码与数据库中的对比得到密码明文;解决了现有的网站登录不安全的问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明为基于MD5加密的提高用户密码安全性的方法,包括如下步骤:
步骤一:用户在前端页面输入密码后,利用前端的JavaScript先对用户输入的明文密码进行组合Salt后采用MD5加密产生一次MD5密文;
步骤二:将加密后的一次MD5密文传输到网站后端;
步骤三:所述网站后端随机生成唯一Salt;
步骤四:所述网站后端将所述唯一Salt与用户ID一同存入Salt数据库;
步骤五:将前端传递的所述一次MD5密文与唯一Salt组合后进行第二次MD5不可逆加密产生二次MD5密文,并将所述二次MD5密文存入密文数据库中。
优选地,所述用户登陆时进行安全验证过程如下:
A00:用户在前端输入的密码在进行第一次混合Salt并采用MD5加密产生一次MD5密文后传递至后端;
A01:所述网站后端依据前端传递的用户ID从所述Salt数据库中获取对应的唯一Salt;
A02:所述网站后台将一次MD5密文与唯一Salt混合后进行第二次MD5加密生成二次MD5密文;
A03:所述网站后台将二次MD5密文与密文数据库存储的密文进行对比,判断用户身份是否成功。
优选地,所述网站后端设置Salt产生服务,用于根据用户ID生成互不相同的唯一Salt。
本发明具有以下有益效果:
1、本发明在前端传输数据之前先利用JavaScript进行第一次加密,从而防止明文密码在传输过程中被截获;即使在传输过程中被截获,那么攻击者也只能截获加密后的字符串,从而大大提高了安全性;
2、本发明通过网站后端设置Salt产生服务,用于根据用户ID生成互不相同的唯一Salt;可以防止固定的Salt泄露,避免攻击者通过组合Salt与猜测的密码与数据库中的对比得到密码明文;并且即使不同用户注册了相同的密码,由于会生成不同的Salt,这样加密后存储在数据库里的密文也不会相同;可以避免攻击者获取到一个用户的密码,进而获取相同密码用户的明文,提高安全性。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的基于MD5加密的提高用户密码安全性的方法的流程图;
图2为本发明的用户登陆时进行安全验证的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明为基于MD5加密的提高用户密码安全性的方法,包括如下步骤:
步骤一:用户在前端页面输入密码后,利用前端的JavaScript先对用户输入的明文密码进行组合Salt后采用MD5加密产生一次MD5密文;
步骤二:将加密后的一次MD5密文传输到网站后端;
步骤三:网站后端随机生成唯一Salt;网站后端设置Salt产生服务,用于根据用户ID生成互不相同的唯一Salt;
步骤四:网站后端将唯一Salt与用户ID一同存入Salt数据库;
步骤五:将前端传递的一次MD5密文与唯一Salt组合后进行第二次MD5不可逆加密产生二次MD5密文,并将二次MD5密文存入密文数据库中。
请参阅图2所示,用户登陆时进行安全验证过程如下:
A00:用户在前端输入的密码在进行第一次混合Salt并采用MD5加密产生一次MD5密文后传递至后端;
A01:网站后端依据前端传递的用户ID从Salt数据库中获取对应的唯一Salt;
A02:网站后台将一次MD5密文与唯一Salt混合后进行第二次MD5加密生成二次MD5密文;
A03:网站后台将二次MD5密文与密文数据库存储的密文进行对比,判断用户身份是否成功。
实际使用时:在前端传输数据之前先利用JavaScript进行第一次加密,从而防止明文密码在传输过程中被截获,例如:用户输入的密码为“Unicloud123”,如果不进行第一次加密,那么密码原文就会被直接截获;如果进行MD5加密之后再进行传输,即使在传输过程中被截获,那么攻击者也只能截获“60090569855697977CDB7F9B6182DFE7”这样加密后的字符串,从而大大提高了安全性;
另,通过网站后端设置Salt产生服务,用于根据用户ID生成互不相同的唯一Salt;可以防止固定的Salt泄露,避免攻击者通过组合Salt与猜测的密码与数据库中的对比得到密码明文;并且即使不同用户注册了相同的密码,由于会生成不同的Salt,这样加密后存储在数据库里的密文也不会相同;可以避免攻击者获取到一个用户的密码,进而获取相同密码用户的明文,提高安全性。
值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (3)
1.基于MD5加密的提高用户密码安全性的方法,其特征在于,包括如下步骤:
步骤一:用户在前端页面输入密码后,利用前端的JavaScript先对用户输入的明文密码进行组合Salt后采用MD5加密产生一次MD5密文;
步骤二:将加密后的一次MD5密文传输到网站后端;
步骤三:所述网站后端随机生成唯一Salt;
步骤四:所述网站后端将所述唯一Salt与用户ID一同存入Salt数据库;
步骤五:将前端传递的所述一次MD5密文与唯一Salt组合后进行第二次MD5不可逆加密产生二次MD5密文,并将所述二次MD5密文存入密文数据库中。
2.根据权利要求1所述的基于MD5加密的提高用户密码安全性的方法,其特征在于,所述用户登陆时进行安全验证过程如下:
A00:用户在前端输入的密码在进行第一次混合Salt并采用MD5加密产生一次MD5密文后传递至后端;
A01:所述网站后端依据前端传递的用户ID从所述Salt数据库中获取对应的唯一Salt;
A02:所述网站后台将一次MD5密文与唯一Salt混合后进行第二次MD5加密生成二次MD5密文;
A03:所述网站后台将二次MD5密文与密文数据库存储的密文进行对比,判断用户身份是否成功。
3.根据权利要求1或2所述的基于MD5加密的提高用户密码安全性的方法,其特征在于,所述网站后端设置Salt产生服务,用于根据用户ID生成互不相同的唯一Salt。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911251536.XA CN111130753A (zh) | 2019-12-09 | 2019-12-09 | 基于md5加密的提高用户密码安全性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911251536.XA CN111130753A (zh) | 2019-12-09 | 2019-12-09 | 基于md5加密的提高用户密码安全性的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111130753A true CN111130753A (zh) | 2020-05-08 |
Family
ID=70497934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911251536.XA Pending CN111130753A (zh) | 2019-12-09 | 2019-12-09 | 基于md5加密的提高用户密码安全性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111130753A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859427A (zh) * | 2020-07-22 | 2020-10-30 | 北京睿知图远科技有限公司 | 一种防止撞库多级加密数据存储方法、系统及可读介质 |
CN114785485A (zh) * | 2022-04-21 | 2022-07-22 | 中国联合网络通信集团有限公司 | 信息加密传输方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882675A (zh) * | 2012-10-18 | 2013-01-16 | 杭州也要买电子商务有限公司 | 社交网站用的密码加密方法 |
CN103795786A (zh) * | 2014-01-20 | 2014-05-14 | 杭州百富电子技术有限公司 | 具有web服务功能的嵌入式集中器系统 |
CN105357191A (zh) * | 2015-10-28 | 2016-02-24 | 北京奇虎科技有限公司 | 用户数据的加密方法及装置 |
CN105743638A (zh) * | 2016-05-13 | 2016-07-06 | 江苏中天科技软件技术有限公司 | 基于b/s架构系统客户端授权认证的方法 |
CN105959099A (zh) * | 2016-06-20 | 2016-09-21 | 浪潮电子信息产业股份有限公司 | 一种实现ssr密码加密的方法 |
US20170104589A1 (en) * | 2015-10-13 | 2017-04-13 | TrustPoint Innovation Technologies, Ltd. | System and Method for Digital Key Sharing for Access Control |
-
2019
- 2019-12-09 CN CN201911251536.XA patent/CN111130753A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102882675A (zh) * | 2012-10-18 | 2013-01-16 | 杭州也要买电子商务有限公司 | 社交网站用的密码加密方法 |
CN103795786A (zh) * | 2014-01-20 | 2014-05-14 | 杭州百富电子技术有限公司 | 具有web服务功能的嵌入式集中器系统 |
US20170104589A1 (en) * | 2015-10-13 | 2017-04-13 | TrustPoint Innovation Technologies, Ltd. | System and Method for Digital Key Sharing for Access Control |
CN105357191A (zh) * | 2015-10-28 | 2016-02-24 | 北京奇虎科技有限公司 | 用户数据的加密方法及装置 |
CN105743638A (zh) * | 2016-05-13 | 2016-07-06 | 江苏中天科技软件技术有限公司 | 基于b/s架构系统客户端授权认证的方法 |
CN105959099A (zh) * | 2016-06-20 | 2016-09-21 | 浪潮电子信息产业股份有限公司 | 一种实现ssr密码加密的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859427A (zh) * | 2020-07-22 | 2020-10-30 | 北京睿知图远科技有限公司 | 一种防止撞库多级加密数据存储方法、系统及可读介质 |
CN114785485A (zh) * | 2022-04-21 | 2022-07-22 | 中国联合网络通信集团有限公司 | 信息加密传输方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109040067B (zh) | 一种基于物理不可克隆技术puf的用户认证设备及认证方法 | |
CN106330850B (zh) | 一种基于生物特征的安全校验方法及客户端、服务器 | |
CN107295011B (zh) | 网页的安全认证方法及装置 | |
US20180026796A1 (en) | Method for distributed trust authentication | |
CN100534036C (zh) | 一种基于三元对等鉴别的可信网络连接方法 | |
US9015489B2 (en) | Securing passwords against dictionary attacks | |
CA2697687C (en) | Method and system for secure communication using hash-based message authentication codes | |
WO2020155779A1 (zh) | 数字签名的认证方法、装置、计算机设备和存储介质 | |
US8775794B2 (en) | System and method for end to end encryption | |
CN105162764A (zh) | 一种ssh安全登录的双重认证方法、系统和装置 | |
CN105656862B (zh) | 认证方法及装置 | |
CN105024819A (zh) | 一种基于移动终端的多因子认证方法及系统 | |
TW201407402A (zh) | 登錄驗證方法以及系統、電腦存儲介質 | |
CN105743638A (zh) | 基于b/s架构系统客户端授权认证的方法 | |
CN105187382A (zh) | 防止撞库攻击的多因子身份认证方法 | |
CN103701787A (zh) | 一种基于公开密钥算法实现的用户名口令认证方法 | |
CN109450859A (zh) | 一种应用于运维审计系统中明文协议代理的密码保护方法 | |
CN106936579A (zh) | 基于可信第三方代理的云存储数据存储及读取方法 | |
CN111130753A (zh) | 基于md5加密的提高用户密码安全性的方法 | |
CN112713995A (zh) | 一种用于物联网终端的动态通信密钥分发方法及装置 | |
CN104394532A (zh) | 移动端防暴力破解的安全登录方法 | |
CN110912857B (zh) | 移动应用间共享登录的方法、存储介质 | |
CN108768958B (zh) | 基于第三方不泄露被验信息的数据完整性和来源的验证方法 | |
CN112953711B (zh) | 数据库安全连接系统及方法 | |
CN102014136B (zh) | 基于随机握手的p2p网络安全通信方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200508 |