CN107612889B - 防止用户信息泄露的方法 - Google Patents
防止用户信息泄露的方法 Download PDFInfo
- Publication number
- CN107612889B CN107612889B CN201710731537.9A CN201710731537A CN107612889B CN 107612889 B CN107612889 B CN 107612889B CN 201710731537 A CN201710731537 A CN 201710731537A CN 107612889 B CN107612889 B CN 107612889B
- Authority
- CN
- China
- Prior art keywords
- key
- string
- login
- request
- character string
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种防止用户信息泄露的方法,所述的方法为客户端发送注册请求,服务器端返回一个key,客户端利用key值加密,并把加密后的数据传给服务器端保存,用户输入用户名密码,发送登录请求,服务器端进行验证,返回数据。其安全的机制在于动态性,每次登录的时间戳不一致,即使黑客拦截到加密后的值,在2分钟以内不能模拟发送请求,则会失效,本发明对提高用户信息安全性能具有重要意义。
Description
技术领域
本发明涉及一种计算机技术和软件开发领域,具体涉及一种由客户端向服务器端发送http请求安全认证的防止用户信息泄露的方法。
背景技术
随着移动互联网技术的迅猛发展和广泛应用,移动终端设备app大量服务于人们生活,用户信息安全成为很大隐患。目前在对用户登录请求过程,针对用户名密码存储的方式多种多样,主要包括以下做法:一种是服务器端和移动端都对明文密码执行同样的加密算法,进行验证,此种方法需要在服务器端存储用户明文密码,服务器端一旦泄露则出现很大风险。一种是在客户端和服务端约定一套公私钥,客户端保存公钥,并用公钥加密一串根据密码生成的散列值。服务端用私钥解密。此种方法可以保证用户明文密码的安全,但是如果黑客拦截加密后的值,则不需要获取用户明文密码也可以模拟发送请求,获取服务器授权,对用户信息造成损失。
发明内容
本发明的目的是提供一种防止用户信息泄露的方法,为避免用户信息泄露,针对http协议的网络请求,采用动态更新登录参数的方法来实现客户端登录过程,即使有人拦截到登录请求,也不能模拟用户信息发送请求,相比目前主要加密方法,该方法实时动态更新请求参数,更加安全可靠。
为了达到上述的技术效果,本发明采取以下技术方案:
一种防止用户信息泄露的方法,客户端向服务器端发送请求时,对密码进行动态加密,主要包括以下几个流程:注册、登录、更新key值、更换手机登录;
所述的注册包括以下步骤:
S11:注册时客户端输入用户名和密码,并发送注册请求给服务端;
S12:服务器端保存用户名,并随机生成key给客户端,同时保存在服务器端;
S13:客户端使用钥匙串将key保存在本地,并利用key和密码通过HMAC加密算法,生成32位的字符串A,并上传至服务器端保存;
所述的登录包括以下步骤:
S21:登录时客户端利用key和32位的字符串A加上当前时间进行MD5加密生成32位字符串B;
S22:将用户名和32位字符串B作为参数向服务器端发送登录请求;
S23:服务器端取出注册时保存的32位字符串A加上当前时间进行MD5加密生成32位字符串C,判断字符串B与字符串C是否相同,若相同,则登录成功;若不相同,服务器端取出注册时保存的32位字符串A加上当前时间的前一分钟时间进行MD5加密生成32位字符串D,判断字符串B与字符串D是否相同,若相同,则登录成功;若不相同,则登录失败。
进一步的技术方案是,所述的S22中将用户名和32位字符串B作为参数向服务器端发送登录请求包含下述的子步骤:
设置http请求地址,获取用户名和S21步骤中生成的加密字符B作为参数;
判断请求参数是否为空,若为空则提示用户错误信息;
把请求参数作为请求体采用异步方式发送http请求。
进一步的技术方案是,所述的S23包含下述的子步骤:
服务器端获取注册时保存的32位字符串A;
获取当前服务器端的时间,并设置时间格式如下“YYYYMMDDHHMM”所示;
字符串A加上当前时间字符串,得到一个新的字符串;
对新的字符串进行MD5加密操作,生成32位字符串C;
将32位字符串C与客户端发送的字符串B进行比对,判断是否正确。
进一步的技术方案是,所述的更新key值流程具体如下:设置key过期时间,如果用户长时间不登录需要重新输入密码,进行登录,获取新key。
进一步的技术方案是,所述的更换手机登录的步骤具体如下:第一次登陆先判断本地有没有key,没有就发送请求给服务器端,服务器段返回一个key,然后和密码加密之后进行上述操作发送登陆请求,登陆成功,则把key保存在本地,否则不保存。
进一步的技术方案是,所述的当前时间截止到时分。
本发明与现有技术相比,具有以下的有益效果:
本发明主要采用动态的参数请求方式,即在注册时服务端会返回一个key值用于加密使用,登录时将密码通过key值进行HMAC加密得到字符A,字符A加时间戳进行MD5加密生成字符B,服务器端用同样的方法生成字符C。字符B和字符C进行比较,一致即登录成功。其安全的机制在于动态性,每次登录的时间戳不一致,即使黑客拦截到加密后的值,在2分钟以内不能模拟发送请求,则会失效,本发明对提高用户信息安全性能具有重要意义。
附图说明
图1为本发明的防止用户信息泄露的方法的整体流程示意图。
图2为本发明注册流程图。
图3为本发明登录流程图。
具体实施方式
下面结合本发明的附图和具体实施例对本发明作进一步的阐述和说明。
图1示出了本发明的防止用户信息泄露的方法的整体流程示意图,客户端发送注册请求,服务器端返回一个key,客户端利用key值加密,并把加密后的数据传给服务器端保存,用户输入用户名密码,发送登录请求,服务器端进行验证,返回数据。
图2示出了本发明的注册流程图,注册的步骤如下:
S1:用户填写用户名和密码,发送注册请求;
S2:服务器端判断是否接收成功,若失败则结束流程,若成功则进入步骤S3;
S3:服务器端随机返回一个key值;
S4:客户端判断是否收到key值,若失败则结束流程,若成功则保存key,并进入S5;
S5:客户端利用key值和密码通过HMAC加密算法,生成32位字符串A,保存在客户端;
S6:将加密后的字符串A发送给服务器端并保存,注册完成。
上述注册流程,其中步骤S5包含以下详细说明:
a1、HMAC运算是利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出;
a2、HMAC运算需要一个散列函数,此处选用MD5,一个密钥key,此处由服务器端返回;
a3、算法公式详细描述,该算法在iOS中有标准库函数来计算
算法公式:
H代表所采用的HASH算法(如MD5)
K代表密钥
K'另一个密钥,源于原始密钥K
m要进行身份验证的消息
opad0x5c5c5c…5c5c一块十六进制常量
ipad0x363636…3636一块十六进制常量
图3示出了本发明的登录流程的示意图,登录的步骤如下:
S1:客户端利用key和密码生成的32位字符串A;
S2:字符串A加上当前时间的字符串组成新的字符,再进行MD5加密操作,得到32位字符串B;
S3:用户名和字符B作为参数向服务器端发送登录请求;
S4:判断发送登录请求是否发送成功,若失败则流程结束,若成功则进入步骤S5;
S5:服务器端取出注册时保存的32位字符串A加上当前时间的字符串进行MD5加密操作获得32位字符串C;
S6:将32位字符串B和32位字符串C进行比对验证,如果验证成功,则登录成功;若验证不成功,则进入步骤S7;
S7:把32位字符串A加上当前时间的前一分钟字符串进行MD5加密操作获得32位字符串D;
S8:将32位字符串B和32位字符串D进行比对验证,如果验证成功,则登录成功;若验证不成功,则结束流程。
步骤S3中用户名和字符B作为参数向服务器端发送登录请求包含下述的子步骤:
b1、设置http请求地址,获取用户名和S21步骤中生成的加密字符B作为参数;
b2、判断请求参数是否为空,若为空则提示用户错误信息;
b3、把请求参数作为请求体采用异步方式发送http请求。
步骤S5包含下述的子步骤:
c1、服务器端获取注册时保存的32位字符串A;
c2、获取当前服务器端的时间,并设置时间格式如下“YYYYMMDDHHMM”所示;
c3、字符串A加上当前时间字符串,得到一个新的字符串;
c4、对新的字符串进行MD5加密操作,生成32位字符串C;
c5、将32位字符串C与客户端发送的字符串B进行比对,判断是否正确。
更新key值流程具体如下:设置key过期时间,如果用户长时间不登录需要重新输入密码,进行登录,获取新key。
更换手机登录的步骤具体如下:第一次登陆先判断本地有没有key,没有就发送请求给服务器端,服务器段返回一个key,然后和密码加密之后进行上述操作发送登陆请求,登陆成功,则把key保存在本地,否则不保存。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。
Claims (4)
1.一种防止用户信息泄露的方法,其特征在于客户端向服务器端发送请求时,对密码进行动态加密,主要包括以下几个流程:注册、登录、更新key值、更换手机登录;
所述的注册包括以下步骤:
S11:注册时客户端输入用户名和密码,并发送注册请求给服务器端;
S12:服务器端保存用户名,并随机生成key给客户端,同时保存在服务器端;
S13:客户端使用钥匙串将key保存在本地,并利用key和密码通过HMAC加密算法,生成32位的字符串A,并上传至服务器端保存;
所述的登录包括以下步骤:
S21:登录时客户端利用key和32位的字符串A加上当前时间进行MD5加密生成32位字符串B;
S22:将用户名和32位字符串B作为参数向服务器端发送登录请求;
S23:服务器端取出注册时保存的32位字符串A加上当前时间进行MD5加密生成32位字符串C,判断字符串B与字符串C是否相同,若相同,则登录成功;若不相同,服务器端取出注册时保存的32位字符串A加上当前时间的前一分钟时间进行MD5加密生成32位字符串D,判断字符串B与字符串D是否相同,若相同,则登录成功;若不相同,则登录失败;
所述的更新key值流程具体如下:设置key过期时间,如果用户长时间不登录需要重新输入密码,进行登录,获取新key;
所述的更换手机登录的步骤具体如下:第一次登录先判断本地有没有key,没有就发送请求给服务器端,服务器端返回一个key,然后和密码加密之后进行上述操作发送登录请求,登录成功,则把key保存在本地,否则不保存。
2.根据权利要求1所述的防止用户信息泄露的方法,其特征在于所述的S22中将用户名和32位字符串B作为参数向服务器端发送登录请求包含下述的子步骤:
设置http请求地址,获取用户名和S21步骤中生成的加密字符B作为参数;
判断请求参数是否为空,若为空则提示用户错误信息;
把请求参数作为请求体采用异步方式发送http请求。
3.根据权利要求1所述的防止用户信息泄露的方法,其特征在于所述的S23包含下述的子步骤:
服务器端获取注册时保存的32位字符串A;
获取当前服务器端的时间,并设置时间格式如下“YYYYMMDDHHMM”所示;
字符串A加上当前时间字符串,得到一个新的字符串;
对新的字符串进行MD5加密操作,生成32位字符串C;
将32位字符串C与客户端发送的字符串B进行比对,判断是否正确。
4.根据权利要求1所述的防止用户信息泄露的方法,其特征在于所述的当前时间截止到时分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710731537.9A CN107612889B (zh) | 2017-08-23 | 2017-08-23 | 防止用户信息泄露的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710731537.9A CN107612889B (zh) | 2017-08-23 | 2017-08-23 | 防止用户信息泄露的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107612889A CN107612889A (zh) | 2018-01-19 |
CN107612889B true CN107612889B (zh) | 2020-06-30 |
Family
ID=61065588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710731537.9A Active CN107612889B (zh) | 2017-08-23 | 2017-08-23 | 防止用户信息泄露的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107612889B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108322480B (zh) * | 2018-03-19 | 2020-11-20 | 王锐 | 智能家居中信息认证方法 |
CN108377249B (zh) * | 2018-03-20 | 2021-01-12 | 陈瑛昊 | 基于物联网技术的新能源汽车中信息认证方法 |
CN108989298B (zh) * | 2018-06-30 | 2021-04-27 | 平安科技(深圳)有限公司 | 一种设备安全监控方法、装置及计算机可读存储介质 |
CN109040148A (zh) * | 2018-11-01 | 2018-12-18 | 四川长虹电器股份有限公司 | 一种移动端向服务器发送登录请求的安全认证方法 |
CN109547445B (zh) * | 2018-11-27 | 2021-05-14 | 北京酷我科技有限公司 | 一种验证客户端网络请求合法的方法及系统 |
CN113271306B (zh) * | 2021-05-18 | 2023-03-24 | 上海星融汽车科技有限公司 | 数据请求、发送方法、设备以及系统 |
CN113361571A (zh) * | 2021-05-25 | 2021-09-07 | 华能曲阜热电有限公司 | 燃料前端化验设备数据自动采集方法 |
CN113596839A (zh) * | 2021-07-30 | 2021-11-02 | 联通沃音乐文化有限公司 | 一种安全可靠的定向访问免流流量认证方法 |
CN115766115B (zh) * | 2022-10-28 | 2024-09-13 | 支付宝(杭州)信息技术有限公司 | 一种身份验证方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006042469A1 (en) * | 2004-10-22 | 2006-04-27 | Beijing Watch Data System Co., Ltd | A dynamic password authentication system and the method thereof |
CN103067160A (zh) * | 2013-01-14 | 2013-04-24 | 江苏智联天地科技有限公司 | 一种加密sd卡的动态密钥生成的方法及系统 |
CN103124269A (zh) * | 2013-03-05 | 2013-05-29 | 桂林电子科技大学 | 云环境下基于动态口令与生物特征的双向身份认证方法 |
CN104506534A (zh) * | 2014-12-25 | 2015-04-08 | 青岛微智慧信息有限公司 | 安全通信密钥协商交互方案 |
CN104580248A (zh) * | 2015-01-27 | 2015-04-29 | 中復保有限公司 | Http协议下可变密钥加密的安全登录方法 |
-
2017
- 2017-08-23 CN CN201710731537.9A patent/CN107612889B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006042469A1 (en) * | 2004-10-22 | 2006-04-27 | Beijing Watch Data System Co., Ltd | A dynamic password authentication system and the method thereof |
CN103067160A (zh) * | 2013-01-14 | 2013-04-24 | 江苏智联天地科技有限公司 | 一种加密sd卡的动态密钥生成的方法及系统 |
CN103124269A (zh) * | 2013-03-05 | 2013-05-29 | 桂林电子科技大学 | 云环境下基于动态口令与生物特征的双向身份认证方法 |
CN104506534A (zh) * | 2014-12-25 | 2015-04-08 | 青岛微智慧信息有限公司 | 安全通信密钥协商交互方案 |
CN104580248A (zh) * | 2015-01-27 | 2015-04-29 | 中復保有限公司 | Http协议下可变密钥加密的安全登录方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107612889A (zh) | 2018-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107612889B (zh) | 防止用户信息泄露的方法 | |
CN109712278B (zh) | 智能门锁身份认证方法、系统、可读存储介质及移动终端 | |
CN108064440B (zh) | 基于区块链的fido认证方法、装置及系统 | |
CN108377190B (zh) | 一种认证设备及其工作方法 | |
CN103051628B (zh) | 基于服务器获取认证令牌的方法及系统 | |
CN108173662B (zh) | 一种设备的认证方法和装置 | |
CN107040513B (zh) | 一种可信访问认证处理方法、用户终端和服务端 | |
CN111327583B (zh) | 一种身份认证方法、智能设备及认证服务器 | |
US10931464B2 (en) | Communication system, hardware security module, terminal device, communication method, and program | |
US20140298037A1 (en) | Method, apparatus, and system for securely transmitting data | |
TW201706900A (zh) | 終端的認證處理、認證方法及裝置、系統 | |
KR101706117B1 (ko) | 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법 | |
CN107920052B (zh) | 一种加密方法及智能装置 | |
WO2015003503A1 (zh) | 一种提高信息安全性的方法、终端设备及网络设备 | |
CN103220673B (zh) | Wlan用户认证方法、认证服务器及用户设备 | |
KR102137122B1 (ko) | 보안 체크 방법, 장치, 단말기 및 서버 | |
CN111884811B (zh) | 一种基于区块链的数据存证方法和数据存证平台 | |
CN110213247B (zh) | 一种提高推送信息安全性的方法及系统 | |
CN111327629B (zh) | 身份验证方法、客户端和服务端 | |
CN105187369B (zh) | 一种数据访问方法及装置 | |
CN115473655B (zh) | 接入网络的终端认证方法、装置及存储介质 | |
CN104767766A (zh) | 一种Web Service接口验证方法、Web Service服务器、客户端 | |
CN112242993A (zh) | 双向认证方法及系统 | |
CN109257381A (zh) | 一种密钥管理方法、系统及电子设备 | |
CN117240453A (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 |